将click事件分配给动态添加的按钮

我正在动态创建一些按钮并为它们分配ID。

当有人点击该按钮时我想收集ID并从那里执行一些任务。

这是我正在进行的工作

$(document).ready(function() { $('input:button').addClass("btnClass"); fillData(); $('#btnGet').click(function() { fillData(); }); function fillData() { $.ajax({ type: "Post", url: "../Linq/myService.asmx/getStudent", contentType: "application/json; charset=utf-8", dataType: "json", success: function(msg) { //var nMsg = (typeof msg.d) == 'string' ? eval('(' + msg.d + ')') : msg.d; var t = "" + " " + " " + "  "; $.each(msg.d, function(index, item) { t = t + " "; t = t + "  "; }); t = t + " 
Your Search Result......

Student IDStudent NameStudent CourseStudent USN


" + item.studId + "" + item.studName + "" + item.studCourse + "" + item.studUsn + "

"; $("#stdData").html(t); }, error: function(msg) { } }); } function onButtonClick() { var btnId = $(this).val(); alert(btnId); }

只需在您正在创建的按钮中添加new-button的类名,然后添加一个单击处理程序。

所以替换这段代码

  

代替

 var btnId = $(this).val(); 

这将为您提供单击按钮的id属性,而不是表单元素的值。

我希望这能帮到您

杰罗姆瓦格纳

如果要动态添加按钮,请考虑使用“.live()”。 每当指定的事件发生时,它都会跟随树上的html元素,直到它被处理完毕。 如果您有很多元素也会更有效,因为事件未分配给元素本身。 你需要为按钮指定一个类或其他东西来识别它们,让我们说’dynamicButton’,所以改变这个:

  

对此:

  

您可以使用以下代码收听事件:

 $('input.dynamicButton').live('click', function (event) { alert($(this).attr('id')); }); 

无论如何将按钮添加到页面,只要点击“dynamicButton”类的按钮,就会调用这个处理程序。

当有人点击那个按钮我想收集ID时 ,我会从那里做一些任务………….

尝试从此行中删除onclick属性:

 t = t + " " + item.studId + "" + item.studName + "" + item.studCourse + "" + item.studUsn + ""; 

进行中:

 t = t + " " + item.studId + "" + item.studName + "" + item.studCourse + "" + item.studUsn + ""; 

现在你可以使用jQuery的live方法(因为你的按钮是动态生成的)来完成这个按钮被点击时的技巧:

 $(function(){ $('#btn').live('click', function(){ var btnId = $(this).attr('id'); alert(btnId); }); }); 

注意:

要获取id属性,您可以使用如上所示的attr方法,例如: $(this).attr('id') not val (用于获取输入元素的值),就像您在代码中一样。

我使用delegate()完成了这个。 在我的例子中,PHP脚本从MySQL数据库生成页面的内容。 对每个元素添加一个按钮(单击这些按钮可以从数据库中删除相应的元素)。 删除由另一个激活这些按钮的PHP脚本处理,因此每个按钮都会附加一个click事件,如下所示:

 $('.items').delegate('[type="button"]', 'click', remove_item); 

按钮是items类的一部分, remove_item是删除的回调。