【问题标题】:Alert when dynamic button is clicked [duplicate]单击动态按钮时发出警报[重复]
【发布时间】:2014-11-05 17:14:17
【问题描述】:

点击动态生成的按钮时,我无法获得触发警报?

警报不会成为最终功能,而是用于确保触发器正常工作的测试。

我尝试了一个“onclick”函数作为触发器,并将 id 用作 jquery 触发器,所以不确定为什么它不起作用,我将在下面添加一个 sn-p 来说明我的意思。

任何指针都将不胜感激,因为我确信这是我所缺少的一些简单的东西。

从生成并显示按钮的文件中(显示正常)

var modOptsMsg = document.getElementById("modOptionsMessage").value + '<input type="button" id="removePost" onclick="removePost()" value="Remove Post"/>';

$("#modOptsShowMsg").empty().append(modOptsMsg);

这些简单的测试都不适用于 js 或 jquery

function removePost(){
    alert("alert");
}
$('#removePost').click(function(){
    alert("alert");
});

提前致谢。

【问题讨论】:

  • 在问题被关闭为重复之前:它应该是$(document).on("click", '#removePost', function() { alert("alert"); });
  • @regent 谢谢!我知道我一直在看它,至于重复我只发布过一次?
  • @Parody 不客气。你问过一次。但是这个问题每天都会被不同的人问很多次:)
  • @JayBlanchard 应该选择不超过 4 年且早于 on() 的适当副本

标签: javascript jquery


【解决方案1】:

正如@Regent 在 cmets 中指出的那样,使用:

$(document).on("click", '#removePost', function() { 
    alert("alert"); 
});

【讨论】:

    【解决方案2】:
      $('#modOptsShowMsg').on("click", '#removePost', function() { 
       alert("alert"); 
    });
    

    上面的代码可以工作..如果 jquery 小于 1.7 使用 .live() 而不是 .on()

    【讨论】:

    • 这不会委托事件并假定在代码运行时元素存在。与使用 click() 没有什么不同,这只是 on('click'.. 的缩写
    • 是的..这是一个错过,现在编辑。
    猜你喜欢
    • 2016-09-14
    • 2011-11-15
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    • 2023-02-26
    • 1970-01-01
    • 2015-07-15
    相关资源
    最近更新 更多