为什么event.stopImmediatePropagation()在IE以外的所有浏览器中都有效?

时间:2013-03-12 01:32:37

标签: internet-explorer javascript-events stoppropagation

经过一些测试后,我注意到event.stopImmediatePropagation()在IE中不起作用(以下用法)。但是,它适用于Chrome,FF,Safari和Opera。是什么给了什么?

请参阅 this fiddle 重新登录IE(在其他浏览器中测试小提琴,看它是否有效)。

小提琴javascript:

$(function(){

    $('#text').focus(function(event){
        $('#text').val('Use the button to test this.');
    });

    $('#button').click(function(event){

        // remove all handlers
        $('#text').off('focus');

        // now add this other handler in first position
        $('#text').one('focus', function(event){
            $('#text').val('Yay it works! stopImmediatePropagation works in your browser!!');
            event.stopImmediatePropagation();
        });

        // now add a handler in the 2nd position that shouldn't get run
        $('#text').focus(function(event){
            $('#text').val('Oh No! stopImmediatePropagation failed to work in your browser!!');
        });

        // now set the focus to test it
        $('#text').focus();
    });
});

小提琴html:

<input id='button' type="button" value="Start Test"/>
<input id='text' style='width:400px;' />

1 个答案:

答案 0 :(得分:3)

IE从IE 9(http://msdn.microsoft.com/en-us/library/ie/ff975461(v=vs.85).aspx)开始支持stopImmediatePropgation,但jquery是问题。

代码中使用的jquery版本无效。这个jsfiddle在IE中完美运行,代码完全相同。唯一的区别是它使用jQuery 1.9.1而不是jQuery 1.8.3