我正在使用jquery来更改下拉列表的背景。出于某种原因,现在需要两次点击才能选择一个项目,而不是一次点击。
我无法找到的是为什么会出现这种情况,以及有效的解决方法或更好的修复方法。 这似乎发生在ie7&即8(有一位朋友在他们的盒子上测试它)下面是我们用来测试这个问题的确切代码。
----------------------------- COMPLETE MARKUP ---------------- ----------------
<script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.3.2.min.js" type="text/javascript"></script>
<style type="text/css">
.yellowBackground, .yellowBackground > * > *
{
background-color: #FFFF79;
}
</style>
<script type="text/javascript">
$(document).ready(function() {
$('select').focus(function() {
$(this).addClass('yellowBackground');
})
});
</script>
</head>
<body>
<form>
<select>
<option value="A">Option 1</option>
<option value="B">Option 2</option>
</select>
</form>
</body>
</html>
答案 0 :(得分:2)
这似乎是known issue in IE7 and forward。
如上所述,另一种方法是使用onmousedown事件来绕过它。
$(document).ready(function() {
$('select').mousedown(function() {
$(this).addClass('yellowBackground');
})
});
虽然onfocusin也应该可以正常工作(但它在jquery中不存在),但这对于下拉列表不起作用。
答案 1 :(得分:0)
我认为问题更可能与<asp:DropDownList>
控件的使用方式有关。在没有看到服务器端代码的情况下,很难看到更全面的图片。你能为你的页面提供aspx标记和代码隐藏吗?