Javascript jQuery live,在IE6和IE7中不工作的变化

Javascript jQuery live,在IE6和IE7中不工作的变化,javascript,jquery,internet-explorer,Javascript,Jquery,Internet Explorer,下面的代码在FF中按预期工作,但在IEs中不工作 $(document).ready(function() { $('div.facet_dropdown select').live('change', function() { var changed_facet = $(this).attr('id'); var facets = $('select', $(this).closest('form')); var args = wind

下面的代码在FF中按预期工作,但在IEs中不工作

$(document).ready(function() {

    $('div.facet_dropdown select').live('change', function() {
        var changed_facet = $(this).attr('id');
        var facets = $('select', $(this).closest('form'));
        var args = window.location.href.split('?')[0] + '?ajax=1';
        var clear = false;
        for(var i = 0; i < facets.length; i++) {
            var ob = $(facets[i]);
            var val = ob.val();
            if(clear) {
                val = '';
            }
            args += '&' + ob.attr('id') + '=' + val;
            if(ob.attr('id') == changed_facet) {
                clear = true;
            }
        }

        $.getJSON(args, function(json) {
            for(widget_id in json) {
                var sel = '#field-' + widget_id + ' div.widget';
                $(sel).html(json[widget_id]);
            }
        });

    });

});
$.live不支持更改事件:

当前不支持:模糊、聚焦、鼠标移动、鼠标移动、更改、提交


尝试改用?

注意:jQuery 1.4现在支持所有正常事件的实时功能。直到最近,它才在IE8上工作,但我相信jQuery1.4.2已经解决了这个问题。查看此已解析的jQuery票证:

我使用的-

jQuery('#id').find('select').live("click", function(){
  jQuery(this).change(function(){
    //your code
  });
});
使用委托函数代替live。它与live相同,但支持更多事件,在IE中工作良好。在yout的情况下,它将是

$('div.facet_dropdown select').delegate('change', function() { ... });

相应的取消委派功能也要注意,从jQuery 1.7开始,您应该使用on,而不是delegate或live

$(selector).live(events, data, handler);                // jQuery 1.3+
$(document).delegate(selector, events, data, handler);  // jQuery 1.4.3+
$(document).on(events, selector, data, handler);        // jQuery 1.7+

Live遇到的问题不仅仅是旧的无更改事件问题:

您是否尝试推断出问题的原因?遇到了这个问题,甚至阅读了文档,错过了不支持的问题。只是想发布此问题的更新。首先,我注意到你发布的URL现在正在重定向到。第二,您所引用的关于当前不支持的更改事件的文章在本页上已不存在,因为它似乎在jquery 1.4.2中起到了支持作用。我刚刚在一个使用1.3.2的页面上遇到了同样的问题,并将其升级到1.4.2,现在它工作得很好。谢谢很抱歉,投票否决了这个答案,因为问题提到的是IE6和IE7,而不是IE8,而且它在使用jQuery 1.4.2的IE6中仍然不起作用,因为IE6不会冒泡更改事件。只是为了避免人们认为这已经解决了。