我的.js文件在与我的插件文件不同的.php文件中不起作用

时间:2013-09-03 09:27:52

标签: php jquery wordpress plugins

我正在使用Wordpress插件,我必须使用jquery。 在我的插件文件中(称之为' my_p.php ')我以这种方式注册我的.js文件( my_js.js ):

add_action('admin_enqueue_scripts', 'my_script');
function my_script() {
    wp_register_script( 'my_jquery', plugins_url( '/js/my_js.js', __FILE__ ), array( 'jquery' ), '1.0.0', false );
    wp_enqueue_script( 'my_jquery' );
}

my_js.js 中的代码是:

 jQuery(document).ready(function($){
         jQuery(document.body).on('click','#button_my_p', function(e){
          alert('hello!');
    });
});

我的问题如下: 如果'button_my_p'是* my_p.php *文件中的一个元素(在我的情况下是一个按钮),它工作正常,当我点击按钮时我看到警报。但是,如果'button_my_p'是另一个.php文件的元素(例如我的插件文件夹中的' other.php '),则jquery代码无效..我不知道看到警报..

我缺少什么?

我的插件的结构是:

  • js 文件夹中我放了 my_js.js
  • my_p.php 档案
  • other.php 文件

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

jQuery并不关心你是否有一个文件或一千个文件。它只搜索DOM(可能由一个.php文件或一千个包含的文件创建)来搜索匹配的元素。

我对调试此问题的建议如下: 首先,检查my_js.js生成的页面上是否存在other.php - 如果不是 - 那么您错误地使用wp_enqueue_script