我下拉菜单的基础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/