【问题标题】:alert not being fired when I append a new div当我附加一个新的 div 时没有触发警报
【发布时间】:2012-05-30 21:48:22
【问题描述】:

在这个小提琴http://jsfiddle.net/adrianjsfiddlenetuser/zyUkd/46/ 上,div 'Hello 01' 和 'Hello 02' 在被点击时会发出警报。当我单击“添加新”时,会添加一个新 div,但是当我单击此 div 时,即使它使用相同的 css 样式,也不会触发警报。

如何修改它以便在添加新 div 时触发警报?

来自 jsFiddle 的代码供后代使用

JS

$(function() {
    $(".myDivs").click(function() {
         alert('Clicked');
    });

    $("#button").click(get);   
    function get() {
        $(".connected").append("<div class=\"myDivs\">hello</div>");
    }
});

HTML

<div class="connected">
    <div class="myDivs">Hello 01</div>
    <div class="myDivs">Hello 02</div>
</div>
<input name="Button3" type="button" value="Add New" id="button">

​ ​

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    您需要委托事件处理程序,因为您在绑定事件上的方式仅将事件绑定到现有 DOM .myDivs,但不适用于即将发生的事件。

    $(".connected").on('click', '.myDivs', function() {
        alert('Clicked');
    });
    

    DEMO

    更多详情请转至here

    【讨论】:

      【解决方案2】:

      那是因为您的 jQuery 正在使用 document.ready 进行分配。因为这个元素在加载时不存在,所以它没有这个分配。你需要单独做这个作业。

      【讨论】:

      • 可以把这个放到doccready里。他只需要确保他使用适当的 jQuery 方法(在本例中为 .on(...)
      【解决方案3】:

      codeparadox 给出的答案是有效的。但我继续更新您的小提琴以完全匹配最新的 jQuery 约定。

      DEMO

      这里是 jQuery 文档的链接以获取更多信息: jQuery .on()

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-01-24
        • 2014-12-09
        • 1970-01-01
        • 2021-02-09
        • 1970-01-01
        • 2012-11-15
        • 1970-01-01
        相关资源
        最近更新 更多