0
我有一个select有一个更改事件,它显示一个确认框。如果用户单击“取消”,那么我将该值更改回以前的值(使用.val())。但是,在IE8中,这是再次触发更改事件,重新启动循环。jQuery .val()方法触发IE8中的更改事件
必须有一个更清晰的方式来设置选择回到它以前的值,而不会触发另一个更改事件,但我想不出:/任何建议?这就是我现在正在做的事情,这可能会相当笨拙:
$("#quiz_style").change(function(){
var selected = $(this).val();
if(selected == "classic"){
if (!confirm("confirmation message for changing to classic")) {
$(this).val('sequential');
return false;
}
} else if(selected == "sequential"){
if (!confirm("confirmation message for changing to sequential")) {
$(this).val('classic');
return false;
}
}
});
编辑 - 位更多信息。我原来的帖子有点误导,因为它表示使用val()会触发另一个更改事件。这并不是真的,我想:发生的事情是,选择被改回来,没有任何不愉快的事情发生,但是当我点击页面上的其他地方(任何地方)时,再次触发改变事件。
设置一个值就是这样做**不是**在任何浏览器中触发“更改”事件。 [Here](http://jsfiddle.net/zZamx/)是你在jsfiddle中的代码,它在IE8中工作正常。 – Pointy 2011-02-15 15:37:37