2011-05-20 92 views
0

我正在使用jquery在选择标记更改时触发更改事件。我注意到,如果selected =“selected”包含在除第一个选项之外的任何选项中,则该事件无法正常工作。它似乎过早起火。例如,jQuery代码是:Internet Explorer更改事件发生太快

$('.test').change(function(){ 
    alert('Handler for .change() called.'); 
}); 

和HTML代码是:

<select class="test"> 
    <option value="option1">option1</option> 
    <option selected="selected" value="option2">option2</option> 
</select> 

此代码只要选择栏点击触发change事件,而不是当它被改变。我可以通过简单地从选项中删除selected =“selected”来解决这个问题,或者将它放在第一个选项中。但我需要选择较低的选项。请帮忙!!!

+0

这对我在IE9中正常工作(http://jsfiddle.net/8BSSz/)。您看到此行为的哪个版本的IE? – Matt 2011-05-20 21:55:14

+0

它在IE8和更早版本中。 – Scott 2011-05-20 22:08:54

+0

Matt,我用浏览器检查了你的代码,它工作正常。我的脚本里还有别的东西可能会导致他们发狂。感谢您的答复! – Scott 2011-05-20 22:18:49

回答

0

说实话,我找不到使用setTimeout(function(){...},0)的其他解决方案,所以更改事件可能会完成。它解决了我在尝试获取检查元素时的问题。