JavaScript - 函数未定义

时间:2012-05-17 22:46:27

标签: javascript jquery html

我已经坚持了好几个小时了。我认为是时候对代码有一些新的认识了。我对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");
});

你能看到任何愚蠢的错误吗?

2 个答案:

答案 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");
       });
    });