小部件“保存”重置jQuery隐藏字段 时间:2010-12-03 作者:Dave Hunt 我创建了一个小部件插件,其中列出了大约10个字段集。jQuery在开头运行,并隐藏没有值的和字段集。还有允许“添加”和“删除”字段集的按钮。一切都很好,除了该“保存”的时候。单击“保存所有jQuery”停止工作后,所有隐藏的字段集都会显示出来,“添加”和“删除”按钮不再工作。继续正确使用小部件的唯一方法是刷新页面有人知道这可能是什么原因,或者可能的解决方案吗? 4 个回复 SO网友:Denis de Bernardy 您正在寻找jQuery。live()或jQuery的livequery插件,具体取决于您要执行的操作。(如果需要使用onChange事件,则第二个是合适的。)目前情况下,在调用save按钮时不会调用jQuery挂钩,因为表单的标记是使用ajax和jQuery(文档)重新加载的。显然,ready()并没有像现在这样被调用。 SO网友:Martin Zeitler 您只需要在jQuery中重新绑定控件。ajax回调函数的“成功”。绑定触发器。live()可能是另一种选择-我个人更喜欢。on()函数。只需使用DOM检查器检查DOM事件绑定。 SO网友:Marcio Duarte 这是一个Ajax的东西。保存小部件时,有一种解决方案可以使脚本再次工作:jQuery(document).ajaxSuccess(function(event, xhr, settings) { var widget_id_base = \'your-widget-id-base\'; if(settings.data.search(\'action=save-widget\') != -1 && settings.data.search(\'id_base=\' + widget_id_base) != -1) { // Do your stuff again here } }); SO网友:Navanath Bhosale 您可以在上调用函数\'widget-added widget-updated\'.示例-$( document ).on( \'widget-added widget-updated\', onSaveWidget ); function onSaveWidget( event, widget ) { initColorPicker( widget ); } 因此,您的自定义JS函数也将在您的小部件保存后工作。 结束 文章导航