替换后维护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(...)
。