我下拉菜单的基础HTML可能会发生变化,因此我尝试使用.live选项而不是.change选项进行设置。它对我不起作用。

我目前拥有的是:

$("#ItemsPerPage").change(function(e) { return updatePaging(); });


不幸的是,如果我通过$.ajax更新此控件,它将丢失事件定义。我尝试但不起作用的是:

$("#ItemsPerPage").live("change", function(e) { return updatePaging(); });


有什么想法吗?

最佳答案

与其每次都重新绑定<select>,不如只是交换其内容(<option>元素的列表),而不是每次绑定。

因此,请按照以下步骤使用它:

$("#ItemsPerPage").change(function(e) { return updatePaging(); });


但是更新时,只需换出其内容(其中newSelectElement是新的<select>元素):

function updateItemsPerPage( newSelectElement ) {
    $("#ItemsPerPage").empty().append( newSelectElement.childNodes );
}


这样,由于节点本身没有交换,因此不需要刷新绑定。

关于jquery - jQuery-将更改事件添加到下拉列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/836694/

10-10 17:15