我写这篇文章是为了解决IE的问题,如果选项下拉列表的选项长度超过了选择的默认值,那么它就会被截断。现在它工作正常,但我想改进代码,以便学习如何以更有用的方式编写东西。
$(document).ready(function() {
if ($.browser.msie) {
$('select').focus(function() { $(this).addClass('expand').removeClass('clicked'); })
$('select').blur(function() { $(this).removeClass('expand clicked'); })
$('select').mousedown(function () { $(this).addClass('expand').removeClass('clicked'); } )
$('select').hover(function () { }, function () {if (!$(this).hasClass('clicked')) { $(this).removeClass('expand'); $(this.blur()) }})
$('select').click (function() { $(this).toggleClass('clicked'); })
$('select').change(function(){ $(this).removeClass('expand clicked'); $('select.widerIE').blur() })
}
});
我尝试制作每个事件调用的函数,但似乎失败了,例如:
$('select').click(test (a))
function test (a) {
$(a).addClass('expand').removeClass('clicked')
}
答案 0 :(得分:1)
我不清楚你想要做什么。有一件事是肯定的 - 你不能定义这样的事件处理程序(见下面的注释):
$('select').click(test (a))
注意:从技术上讲,您可以像上面的代码一样定义事件处理程序。为了实现这一点,函数 test 必须返回一个函数,该函数将成为事件的实际处理程序。