我正在制作一个网络应用。在一个部分中,我有一个用javascript动态生成的清单。
我希望在检查核对表时执行jQuery函数。
以下是动态生成核对表的代码:
var checkbox = document.createElement("input");
checkbox.setAttribute("type","checkbox");
checkbox.setAttribute("class", "tickbox");
document.getElementById("sortable").appendChild(checkbox);
这是执行时的输出HTML文件,显示实际创建了复选框:
<input type="checkbox" class="tickbox">
我希望在选中此框时执行一项功能。我试过了:
1
$('.tickbox').change(function () {
alert("Here");
if ($(this).attr("checked")) {
alert("Yeah");
}
2。
if($(.tickbox).is(':checked')){
alert("Yeah!!!");
3
$('.tickbox').each(function(){
if($(this).is(':checked')){
alert("Yeah!!!");
}
})
但没有任何效果。怎么了?我该怎么办?
注意:许多其他javaScript和jQuery,包括许多其他函数调用都工作正常。
答案 0 :(得分:2)
您说您已动态添加了复选框,因此为了向该DOM添加事件处理程序,您必须使用.on()
。
示例强>
$(document).on('change','.tickbox',function(){
if($(this).is(':checked')){
alert("Yeah!!!");
}
})
答案 1 :(得分:1)
试试这个......
var checkbox = document.createElement("input");
checkbox.setAttribute("type","checkbox");
checkbox.setAttribute("class", "tickbox");
document.getElementById("sortable").appendChild(checkbox);
$(".tickbox").click(function(){
if ($(this).is(':checked')) {
alert("checked");
}
});
答案 2 :(得分:0)
对于动态生成的元素,您需要在():
上使用$(document).on("change",'.tickbox',function () {
if ($(this).attr("checked")) {
alert("Yeah");
}
});
因为你的tickbox
是动态创建的,所以你需要在文件上绑定事件以获取更改事件的类名称复选框。