加载 jQuery 后运行(至少运行下面的“使用”部分),可以在页面末尾或 DOM 就绪语句中运行。请注意,此修复程序会创建一个下拉菜单的克隆,该克隆会与表单数据一起提交,但名称值已在末尾添加了“ -clone”,因此请注意这一点,尤其是在您序列化所有输入时。
感谢 Craig Hoover。
// Safely use $
(function($) {
$.fn._ie_select=function() {
return $(this).each(function() {
var a = $(this),
p = a.parent();
p.css('position','relative');
var o = a.position(),
h = a.outerHeight(),
l = o.left,
t = o.top;
var c = a.clone(true);
$.data(c,'element',a);
c.css({
zIndex : 100,
height : h,
top : t,
left : l,
position : 'absolute',
width : 'auto',
opacity : 0
}).attr({
id : this.id + '-clone',
name : this.name + '-clone'
}).change(function() {
$.data(c,'element')
.val($(this).val())
.trigger('change')
});
a.before(c).click(function() {
c.trigger('click');
});
}); // END RETURN
}; // END PLUGIN
// Usage
if ($.browser.msie) {
$('select')._ie_select();
}
})(jQuery); // END SAFETY
感谢您的帖子。解决了我的问题。
您能用简单的英语解释一下如何在页面中添加此脚本吗?
请注意,在我的页面中,我有不止一个要修复的选择框。
提前感谢
更新:我找到了一个方法来应用它,但是,正如我所说,在我的网页中有多个下拉菜单,这些下拉菜单是动态生成的,所以有一些问题
1. 当下拉菜单重新生成时,宽度会恢复到“有问题的”宽度
2. 由于下拉菜单彼此相邻,因此点击右边的下拉菜单会被左边的下拉菜单捕获。
谢谢。它解决了我在 IE 中的下拉菜单被截断的问题。但我有一个问题,当点击下拉菜单的外边框时,它不起作用。
嗨,我找到了一个方法来应用它,但是,正如我所说,在我的网页中有多个下拉菜单,这些下拉菜单是动态生成的,所以有一些问题
1) 出现了 3 次警报消息。
请帮助解决这个问题
解决了我的问题。谢谢。
感谢分享,兄弟,这对我有用