无法在js generated复选框上触发复选框点击事件

时间:2015-03-07 23:45:50

标签: javascript jquery checkbox

一个非常奇怪的问题,但是我已经在很长一段时间内对此表示同意,现在我也非常认真地对待它。所以,这里是:

当我的页面加载时,我有3个复选框可用。在左侧的菜单中可以选择几个类别,单击每个类别会执行$ .getJSON请求,通过将此代码附加到tbody来构建新的复选框:

str = '<tr><td><img src="/images/icons/'+icon+'.jpg" alt="'+shrt+'"></td><td>'+labl+'</td><td>'+desc+'<br><span></span></td><td>'+pnts+'</td><td><input type="checkbox" name="status" class="status" '+checked+' id="'+i+'"></td></tr>';
$("#tbody_data").append(str);

现在,在pageload(通过php)生成的第一页上,我可以通过执行$("input[type=checkbox]").click(function () { if($(this).prop('checked')) console.log("This Works"); });检查是否选中了复选框

但是,在我从上面提到的js生成一个新的复选框后,我无法执行与上面相同的操作。它没有注意到单击事件,我不知道为什么它不起作用,这让我感到烦恼。即使我做$(“身体”)。点击(yadiyadi)控制台中没有任何反应。

提前感谢您提供的任何提示!

2 个答案:

答案 0 :(得分:0)

正如上面的Dhiraj和randombumper所提到的,这就是诀窍 - 我尝试只调用.click,document.body点击工作精湛。感谢帮助人员。

答案 1 :(得分:0)

你的.click()函数不起作用的原因是因为代码是在DOM中存在复选框之前调用的,所以不能应用处理程序。

对动态创建的内容使用(document).on("click", "yourSelectorHere", function(){//do stuff});