首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jQuery live,更改为在IE6中不工作,IE7

jQuery live,更改为在IE6中不工作,IE7
EN

Stack Overflow用户
提问于 2009-09-20 19:12:00
回答 4查看 16.6K关注 0票数 16

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

代码语言:javascript
复制
$(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]);
            }
        });

    });

});
EN

回答 4

Stack Overflow用户

发布于 2010-04-07 12:30:29

注意: jQuery 1.4现在支持所有正常事件的实时函数。它直到最近才能在IE8上工作,但我相信这个问题已经在jQuery 1.4.2中得到了修复。查看这张已解析的jQuery票证:IE8 DOES NOT SUPPORT THE CHANGE EVENT WHILE USING LIVE

票数 3
EN

Stack Overflow用户

发布于 2010-10-08 02:17:04

我用了-

代码语言:javascript
复制
jQuery('#id').find('select').live("click", function(){
  jQuery(this).change(function(){
    //your code
  });
});
票数 2
EN

Stack Overflow用户

发布于 2010-10-20 00:25:16

使用live()函数代替delegate()函数。它与live相同,但支持更多事件,在IE中运行良好。在你的情况下,它将是

代码语言:javascript
复制
$('div.facet_dropdown select').delegate('change', function() { ... });

和对应的undelegate()函数

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1451760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档