我已经坚持了好几个小时了。我认为是时候对代码有一些新的认识了。我对JavaScript很陌生,所以我肯定会忽略一些细节。我应该注意其他功能正常工作。
我正在动态地在表中创建行,并且一些单元格包含SELECT元素。这是脚本(只是我遇到麻烦的部分):
case 2:
newcell.innerHTML = "<select id='size" + pid + "' class='ad_size' \
onChange='updateSubtotal()'> \
<option value='0'>Full</option> \
<option value='1'>Half</option> \
<option value='2'>Quarter</option> \
<option value='3'>Eighth</option> \
<option value='4'>Directory</option> \
</select>";
break;
和基本功能,我只是想记录它是否被正确调用:
function updateSubtotal() {
console.log("size changed");
return true;
}
添加我最初尝试使用jQuery .change并且它也无法正常工作可能会有帮助:
$(".ad_size").change(function(){
console.log("size changed");
});
你能看到任何愚蠢的错误吗?
答案 0 :(得分:3)
由于您要动态添加元素,请尝试使用delegate
附加事件处理程序。
$('tableSelector').delegate('.ad_size', 'change', function(){
console.log("size changed");
});
如果您使用的是jQuery 1.7 +
,请使用on
$('tableSelector').on('change', '.ad_size', function(){
console.log("size changed");
});
答案 1 :(得分:0)
尝试:
$(document).ready(function(){
$(".ad_size").live('change',function(){
console.log("size changed");
});
});