无法调用Java函数作用域?

时间:2012-11-13 作者:manafire

尝试调用加载了的函数时,我遇到一个方法未定义错误wp_enqueue_script 从…起site.js.

我猜这是因为jQuery ready包装器造成的范围?我该怎么避开呢?

site.js (已加载head)

jQuery(document).ready(function($) {
  $(window).load(function() { // wait until everything has loaded
    doSomething(); // results in face palm
  });
});
my-script.js (加载在页脚中)

jQuery(document).ready(function($) {

  function doSomething() {
    alert("Time for a coffee break!");
  }
});

functions.php

wp_register_script( \'my-script\', get_template_directory_uri().\'/js/my-script.js\', array( \'jquery\' ), \'\', true );
wp_enqueue_script( \'my-script\' );
// Pass in PHP variables
wp_localize_script( \'my-script\', \'my_script\', localize_post_vars() );

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

你需要把你的doSomething 在正确的命名空间中,或至少在命名空间中。最简单的方法是把它放在window 命名空间:

jQuery(document).ready(function($) {
    window.doSomething = function() {
        alert("Time for a coffee break!");
    };
});

结束

相关推荐

如何通过jQuery Keyup()检查电子邮件是否存在?

我设置了一个jQuery键控延迟函数来检查输入字段中键入的电子邮件。在使用alert(\'Key pressed!\'); 但我想让它说,例如,“是的,这封电子邮件与用户关联”或“对不起,这封电子邮件不在我们的数据库中”,而不提交任何页面请求。 var delay = (function(){ var timer = 0; return function(callback, ms){ clearTimeout