替换后维护jQuery onChange

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

mySelect = jQuery('select').get(0); origSelect = jQuery(mySelect).clone(); jQuery(mySelect).change(function(){ //some code } 

当我触发代码以重置选择时:

 jQuery(mySelect).replaceWith(origSelect); 

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

将参数true传递给clone方法。

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

或者将origSelect的innerHTMl替换为mySelect的innerHTMl。

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

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