我的.js文件没有';我在一个与我的插件文件不同的.php文件中工作


my .js file doesn't work in a .php file different from my plugin file

我正在开发一个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文件

谢谢你的帮助!

jQuery不在乎您有一个文件还是一千个文件。它只需在DOM(可能由一个.php文件创建,也可能由包含的一千个文件创建)中搜索匹配的元素。

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