在替换后维护jQuery onChange

时间:2011-08-03 20:11:07

标签: javascript jquery

我有一些代码可以抓取页面上的第一个选择并克隆它,以便我可以在以后需要时重置它。

mySelect = jQuery('select').get(0);
origSelect = jQuery(mySelect).clone();

jQuery(mySelect).change(function(){
   //some code
}

当我触发代码以使用:

重置select时
jQuery(mySelect).replaceWith(origSelect);

onChange函数停止工作。我已经确定这是因为它现在被称为origSelect并响应onChanges来获得该名称。我是否有任何选项可以用origSelect的内容替换mySelect的内容而不更改它所引用的名称?

2 个答案:

答案 0 :(得分:2)

将参数true传递给clone方法。

origSelect = jQuery(mySelect).clone(true); //This will clone the select with data and events

或将origSelect的innerHTMl替换为mySelect的内部。

jQuery(origSelect).html(jQuery(mySelect).html()); 

答案 1 :(得分:0)

使用$(mySelect).live('change', ...)代替$(mySelect).change(...)