从动态表内的div中选择按钮

时间:2015-04-16 16:10:24

标签: javascript jquery

我需要为表内的div内的按钮添加一个click事件处理程序。我如何使用jQuery实现它。这是我的div:

<div id = 'fromServer'></div>

以下是我如何填充它:

function onSuccess(response) {
    p = response;   //p is global for debugging! 
    resultsArray = response.results;
    str = '<table id=\'mytable\'>';
    str += '<tr><td class =\'title\'>Album</td>';
    str += '<td class =\'title\'>Track Name</td>';
    str += '<td class =\'title\'> <button id =\'save\'>Save</button></td></tr>';

    for (i = 0; i < resultsArray.length; i++) {
        str += '<tr><td>' + '<img src=\'' + resultsArray[i].artworkUrl100 +'\' height=\'100\' width=\'100\''  +  '</td>';
        str += '<td class=\'albumName\'>'  + resultsArray[i].trackName.substring(0,30) + '</td>';
        str +=   '<td> <input type=\'checkbox\' class =\'checkbox\' name=\'' + i + '\'></td></tr>';
    }
    str += '</table>';
    $('#fromServer').html(str);
}

以下是它的外观:

enter image description here

现在我想为保存按钮添加一个click事件处理程序,我该怎么做?这是我的尝试,但它不起作用。

$('#fromServer').find("#mytable").find("#save").bind('click', saveButtonEventHandler);

//Event Handlers
function saveButtonEventHandler(evt) {
    alert("Button pressed!");
}

2 个答案:

答案 0 :(得分:5)

看起来内容是用ajax加载的。 你可以使用以下功能。

$(document).on("click", '#save', function(event) { 
    alert("button pressed");
});

答案 1 :(得分:1)

由于表和保存按钮正在动态添加到DOM中,因此最好使用委托事件处理程序:

$('#fromServer').on('click', '#save', saveButtonEventHandler);