JQuery - 将更改事件添加到下拉列表

Kei*_*ows 17 jquery

我下拉的基础HTML有可能改变,我试图使用.live选项而不是.change选项来设置它.它对我不起作用.

我现在拥有的是:

$("#ItemsPerPage").change(function(e) { return updatePaging(); });
Run Code Online (Sandbox Code Playgroud)

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

$("#ItemsPerPage").live("change", function(e) { return updatePaging(); });
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

Jed*_*idt 23

而不是<select>每次重新绑定,而不是仅仅交换其内容(<option>元素列表).

所以请按照以下方式使用:

$("#ItemsPerPage").change(function(e) { return updatePaging(); });
Run Code Online (Sandbox Code Playgroud)

但是当你更新它时,只需换出它的内容(newSelectElement<select>元素在哪里):

function updateItemsPerPage( newSelectElement ) {
    $("#ItemsPerPage").empty().append( newSelectElement.childNodes );
}
Run Code Online (Sandbox Code Playgroud)

这样,不需要刷新绑定,因为节点本身没有交换.