【问题标题】:how refresh the document ready in jquery如何在 jquery 中刷新准备好的文档
【发布时间】:2011-03-28 17:43:04
【问题描述】:

例如,如果我编写此代码:

$(document).ready(function(){

    $("div#i").click(function(){
        alert("ok");
       });
    });  

加载时在页面中找不到带有i id的div元素,所以在我用一些函数创建它之后;然后我点击它,什么也没发生,所以我如何在 jquery 中刷新准备好的功能..

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:
    $(document).delegate('div#i','click',function(){});
    

    使用Delegate

    Reference

    Delegate vs Live

    Demo

    【讨论】:

    • 我推荐使用.delegate
    • @Raynos 感谢您提供的信息,答案已更改,并链接到您与我分享的关于为什么您应该在现场使用委托的答案。
    【解决方案2】:

    考虑使用 .live() : http://api.jquery.com/live/

    【讨论】:

    • 自 jQuery 1.7 起已弃用
    【解决方案3】:

    从 (document).ready 中取出该单击事件处理程序,并将其放入您提到的创建 ID 的函数中。

    function someFunction()
    {
      //creates the id, then
        $("div#i").click(function(){
            alert("ok");
           });
    
    }
    

    编辑:

    如果这只是许多潜在事件处理程序中的一个示例,那么将它们全部包装在一个函数中,例如,bindEvents(),您可以在每次页面被 ID 创建“弄脏”时调用它。

    但其他评论者使用 .live() 的方法可能不太容易维护,如果你担心的话,它就是“JQuery 方式”。

    【讨论】:

    • 但我似乎更喜欢 .live 解决方案 :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-23
    • 2011-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-24
    • 2021-02-22
    相关资源
    最近更新 更多