【问题标题】:"on" and "live" in jQuery 1.10.2jQuery 1.10.2 中的“on”和“live”
【发布时间】:2013-10-02 16:29:01
【问题描述】:

1.10.2 如何应用于新创建的元素。创建者:

$('#ids').append('<div class="sel_option" value="'+i+'">'+i+'</div>');

如何捕捉点击? 或者如何创建可以解决的元素...

【问题讨论】:

    标签: jquery live jquery-1.10


    【解决方案1】:

    .on()

    由于您的内容是loaded dynamically,您无法访问它们directly

    在加载时,即 DOM ready 动态加载的内容不是 DOM 的一部分。

    所以你必须使用event Delegation

    所以在页面加载时将事件绑定到 DOM 中的元素上

    $('#ids').on('click', '.sel_option', function () {
        alert('clicked');
    });
    

    【讨论】:

    • 要全局使用,无需关心父名称你可以使用 $(document).on('click', '.sel_option', function () { alert('clicked'); }) ;
    【解决方案2】:
    $(document).ready(function(){
      var content = $(document);
    
      content.delegate(".sel_option","click",function(){alert("Hello")});
      // with the delegate function, you can put any event in any element
    
    });
    

    【讨论】:

    • 从 jQuery 1.7 开始,.delegate() 已被 .on() 方法取代。
    • 好的,就用这个:content.on("click",".sel_option",function(){alert("Hello")});
    猜你喜欢
    • 2014-04-04
    • 2012-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-22
    • 2013-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多