开发者

jQuery 1.4 change(), checkbox and IE

I have a page with a checkbox that is set to checked when the page is loaded. If/when the checkbox is unchecked I need to run a function. The following code works fine in all browsers with the exception of IE. In versions 7 and 8(haven't even tested 6) it works but you are required to uncheck it, check it, then on the second uncheck it executes the function. The jQuery documentation states: "As of jQuery 1.4 the change event now bubbles, and works identica开发者_运维知识库lly to all other browsers, in Internet Explorer"... but it doesn't seem to work. Any ideas?

The code:

$('#checkbox').change(function() {
  // do something
});


Upgrade to jQuery 1.4.2+ to resolve this. The 1.4.2 release included several changes/fixes for events.

This change event, change bubbling in IE (big one for many people), and lots more was fixed in that release, upgrading will resolve your issue :)


If you want to stop event bubbling, use

$('#checkbox').change(function(event) { 
    event.stopPropagation();
    // do something 
});

Perhaps you could also do something like

if ($.browser.msie) {
    $('#checkbox').click(function() { // assuming this will be fired for keyboard as well

        $(this).change();
    });

};

This may force the event.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜