单击动态按钮上的功能,实时/不工作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单击动态按钮上的功能,实时/不工作相关的知识,希望对你有一定的参考价值。

我试图在单击动态生成的按钮时运行一个函数。它出于某些原因似乎不起作用,无论我尝试使用什么方法。

javascript

//Generating the button
$('<div><h3>Back<h3></div>')
  .attr('class', 'rtext btn arrowback').attr('role', 'button').attr('id', '2')
  .appendTo($(".row1")).hide().delay(800).fadeIn(1000);

//function when button is clicked
$(".row1").on("click", ".arrowback", function(){
    var userID = this.id;
    alert(userID);
});

我尝试过使用.on,我尝试使用.live:

$(".arrowback").live("click", function(){
   var userID = this.id;
   alert(userID);
});

但似乎没有任何效果。我的语法不正确吗?

答案

啊,我现在已经解决了它,如果动态生成父和子,下面的函数将起作用:

$(document.body).on("click", ".arrowback", function(){
    var userID = this.id;
    alert(userID);     
});
另一答案

动态生成元素还允许将事件绑定到最近创建的元素。

看看这个codepen:http://codepen.io/andtankian/pen/dXpZPR

$('div').append("<div></div>");
$('div>div').addClass("row1");

//Generating the button
$('<div><h3>Back<h3></div>')
  .attr('class', 'rtext btn arrowback').attr('role', 'button').attr('id', '2')
  .appendTo($(".row1")).hide().delay(800).fadeIn(1000);

//function when button is clicked
$(".row1").on("click", ".arrowback", function(){
    var userID = this.id;
    alert(userID);
});

我模拟了你的环境,一切正常。

以上是关于单击动态按钮上的功能,实时/不工作的主要内容,如果未能解决你的问题,请参考以下文章

片段内 Listview 中动态视图的 onClick 侦听器

java 单击片段中的按钮功能

按钮需要单击两次才能工作 - 为啥?

TextField 没有动态更新

如何从Android中的片段单击按钮打开片段

在 Activity 内部,如何暂停 for 循环以调用片段,然后在按钮单击片段后恢复循环以重新开始