我正在编写一个小部件,它的表单元素附带了一个单击事件。我使用jQuery绑定它。
但是,单击save
, 绑定丢失。也就是说,单击这些元素不会再触发该函数。
我试着用on()
jQuery方法,如建议的here, 但这无助于:
var buttonsHolder=jQuery(\'#widgets-right .icon_buttons\');
// save the array of big icons, for later reference, and assign them the click event
var buttons=buttonsHolder.children(\'input\');
buttons.on("click",function(){
openPanel(jQuery(this),jQuery(this).index());
});
我可以把我的
js
小部件表单中的代码,如建议的
here. 这确实解决了问题,但我真的更愿意
js
代码分隔。
即使在save
是否单击按钮?
最合适的回答,由SO网友:Lea Cohen 整理而成
因为正在重建输入框(或整个表单),所以我遵循了其他地方给我的建议,并没有将on()绑定到输入框,而是将其绑定到更高的位置,并使用事件委派:
jQuery(\'#widgets-right\').on(\'click\',\'.icon_buttons input\',function(){
openPanel(jQuery(this),jQuery(this).index());
});
我仍然在小部件表单中放置了一些js变量声明,但这只是为了方便起见,而且只需要几行代码,所以我不太介意。