保存Widget设置后是否运行JS?

时间:2011-09-01 作者:Tivac

我编写了一个小部件,它使用JS在设置面板中设置一些选项卡。当小部件保存完成时,是否有方法重新触发选项卡JS?

查看WPJS source 它看起来不像,因为它只是将现有的HTML和;重新渲染整个表单。我可能会覆盖wpWidgets.save &;做一些疯狂的事情,但这似乎真的很激烈。

Solution

在基于一个小马驹的想法进行了一些黑客攻击之后,以下是我最终得到的结果。

<script>
jQuery(document).ready(function($){
    if(parseInt("<?php echo $this->number; ?>", 10)) {
        $("[id$=\'<?php echo $this->id; ?>\'] .tabs").tabs();
    }
});
</script>
基本上,我只发送了一些JS和一些小部件值,这些值是在&;中硬编码的;进行一些检查(&A);有趣的CSS3选择器可以找到正确的DOM节点。

2 个回复
最合适的回答,由SO网友:onetrickpony 整理而成

将javascript代码放在小部件表单中,每当小部件刷新时,它都会被触发。

如果您的选项卡连接到一个单击事件,那么更好的方法是使用$.delegate 在小部件实例包装器上。这样,您就不需要在每个小部件实例中包含js。。。

SO网友:Camwyn

这是一条旧线索,但万一有人在这里缠身:

添加或保存小部件时会触发js操作。合理调用widget-addedwidget-updated.

Trac票据:https://core.trac.wordpress.org/ticket/19675

您可以这样使用它们:

    // On the Widget Actions, run.
$( document ).on( { \'widget-added widget-updated\': function ( e, widget ) { //do stuff. }

结束

相关推荐

无法识别JavaScript和图像文件

这可能是最简单的问题,但我找不到为什么WordPress无法识别我的JavaScript文件和图像。我把我所有的JS文件和图像都放在我的主题文件夹中,所以我在“主题”里面创建了一个文件夹“word”,里面有所有的内容,然后我添加了我的文件。但该网站无法识别JavaScript或图像的路径。你能告诉我我做错了什么吗?我在首页中这样使用它:<script src=\"jquery.js\" type=\"text/javascript\"></script>