我的下拉列表的底层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 ); }
这样,绑定将不需要刷新,因为节点本身不被交换。