复选框单击事件在firefox中更改事件之前触发,与chrome不同

时间:2015-07-24 07:29:54

标签: jquery google-chrome firefox checkbox javascript-events

我的脚本中有一个复选框的两个事件,一个点击,另一个点击更改。 当我点击它时,它首先触发更改事件然后点击Chrome中的事件,但在Firefox中它反向。有没有办法在Firefox中更改它的顺序?

1 个答案:

答案 0 :(得分:1)

我不知道为什么触发事件的顺序在浏览器之间是不一致的,但是我不明白为什么你不能把所有东西都移到一个change处理程序中。如果你必须使用单独的处理程序,你可以添加一个超时,click事件仍然会在Firefox中首先触发,但是在更改处理程序触发之后它的代码才会被执行。

var myBoolean = false;

$('#example').on({
    'click': function() {
        setTimeout(function() {
            console.log('clicked'); 
            console.log(myBoolean);
        }, 1);
    },
    'change': function() {
        console.log('changed');
        myBoolean = true;
    }
});

Here's a fiddle