在jQuery中,使用php变量来执行排队jQuery文件

时间:2013-08-02 作者:Jason

我正在一个特定的Wordpress管理页面上加载一些jquery,jquery可以加载并正常工作,但如果存在php变量,我只需要这个jquery触发器。

在php中,我只需编写一个函数并将其挂接到管理页面:

我正在将jquery文件排队,即foo。包含以下jquery的js:

jQuery(document).ready(function($){
    $(\'#someID.some-class > a\').append(\'<div class="caption"></div>\');
    $(".caption").text("Add this text");
});
所以文件foo。只要主题出现,js文件就会加载。php文件已加载,但我不希望jquery运行,除非主题设置了变量。php页面。

我对在哪里以及如何检查变量和触发jquery感到困惑。

我是否只是通过从函数中回显jquery来添加jquery?

我是否在foo中添加了php变量check。js文件?

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

我是否只是通过从函数中回显jquery来添加jquery?

我是否在foo中添加了php变量check。js文件?

不,当然不。

使用wp_localize_script. 这个函数最初的目的是翻译js脚本,但它允许向js传递任何类型的变量。

function register_foo() {
  wp_register_script(\'foo-js\', plugins_url(\'js/foo.js\', __FILE__), array(\'jquery\'), null);
  $mydata = array(
    \'foo\' => \'bar\', \'awesome\' => \'yes\'
  );
  wp_localize_script(\'foo-js\', \'mydata\', $mydata); // this one do the magic
  wp_enqueue_script(\'foo-js\');
}
add_action(\'admin_enqueue_scripts\', \'register_foo\');
使用此代码段创建文件“foo”。js’被插入到管理页面中,一个变量,即json对象,被传递给脚本,您可以根据需要使用它。

现在,以你的“foo”为例。js’你可以拥有;

jQuery(document).ready(function($){
    var foo = mydata.foo;
    var awesome = mydata.awesome;
    if ( foo == \'bar\' ) {
      $(\'#someID.some-class > a\').append(\'<div class="caption"></div>\');
      $(".caption").text("Is this script awesome? " + awesome + \'!\');
    }
});

结束

相关推荐

重力将jQuery.Load形式化为模式

我有一个gravity表单联系人表单,它驻留在一个页面上,但我想要的是一个站点范围的链接,它将打开该表单,并以动态模式显示它。一种方法是将表单插入模板端的标记中,这样表单就已经存在于每个页面上了。但这意味着加载了大量的标记和gf脚本,而这些脚本在很大程度上都不需要存在。因此,我收集了一些js,从页面中获取表单标记并将其插入DOM,加载脚本,然后在twitter引导模式中显示结果。事物的表示端按预期工作,但js条件逻辑等都没有得到应用。我知道js正在加载,因为Im将每个脚本的状态输入控制台。日志-我得到“2