【问题标题】:Jquery .click() not work if HTML element not yet added如果尚未添加 HTML 元素,则 Jquery .click() 不起作用
【发布时间】:2018-02-25 14:32:41
【问题描述】:

我试过方法: Attaching click event to a JQuery object not yet added to the DOM

但在我的情况下似乎不起作用。在我通过jquery 创建dom 元素后,新创建的元素无法访问。我想要的是点击"click me"按钮后,图片会显示出来,我希望点击图片和一个div (#color-picker-box)显示出来。

我的代码:https://codepen.io/MoMoWongHK/pen/ZXbWYb

【问题讨论】:

  • 请在此处发布您的代码,用户不必去其他网站查看它
  • 一个简单的印刷错误$("myDiv") 应该是 $("#myDiv")#,因为您选择的是 ID 而不是标签名。
  • 这是一个愚蠢的错误......
  • @MoMoWongHK ...这应该让你考虑删除帖子。

标签: javascript jquery html


【解决方案1】:

在调用你的div的id时添加数字符号,

来自

$("myDiv").on("click" ,".color-picker-icon" , function(){
    alert("hi");
    $("#color-picker-box").removeClass("display-none");
});

$("#myDiv").on("click" ,".color-picker-icon" , function(){
    alert("hi");
    $("#color-picker-box").removeClass("display-none");
});

【讨论】:

    【解决方案2】:

    您在使用 myDiv 作为选择器时错过了 #!

    错误:

    $("myDiv").cl....
    

    更正:

    $("#myDiv").cl.....
    

    【讨论】:

      【解决方案3】:

      您需要使用事件委托,因为该元素尚未添加到 dom。您需要捕获对其父级的点击。

      $('#myDiv').on("click", "#color-picker-box", function(e){
        console.log('color box clicked');
      });
      

      阅读更多关于它的信息: https://learn.jquery.com/events/event-delegation/
      http://api.jquery.com/on/

      【讨论】:

        猜你喜欢
        • 2018-07-17
        • 2015-02-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-17
        • 1970-01-01
        • 2012-08-02
        • 1970-01-01
        相关资源
        最近更新 更多