小部件“保存”重置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函数也将在您的小部件保存后工作。

结束

相关推荐

注册jQuery会终止管理函数

我最近在我的主题中添加了以下内容functions.php, 要从CDN加载jQuery,请执行以下操作:function my_init_method() { wp_deregister_script(\'jquery\'); wp_register_script(\'jquery\', \'http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js\'); } add_acti