简单的jQuery Click不起作用,尽管控制台日志可以识别该功能

时间:2017-08-02 作者:MikeiLL

在插件中加载jQuery对话。

在管理排队脚本中排队

function enqueue_settings_scripts_styles($page) {
    wp_enqueue_script (  \'my-plugin\', \'path/to/the.js\', array( \'jquery-ui-dialog\' ));
}
add_action(\'admin_enqueue_scripts\', enqueue_settings_scripts_styles\');
HTML

<a style="cursor:pointer" class="cool-button">Click Me</a>
脚本(the.js)

(function($) {
  console.log( "ready!" ); // this happens
  var detailsButton = $(\'a.cool-button\');
  console.log(detailsButton.click);
  // this prints out to console:
  // function (a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}


  detailsButton.click(function(e) {
    alert(\'i happened\'); // never happens
    e.preventDefault();
  });
})(jQuery);
我花了一个多小时来解决这个问题。我错过了什么?

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

将脚本排队时,应说明脚本的依赖关系。在您的情况下,它是jQuery。

按以下方式将脚本排队:

wp_enqueue_script (  \'my-plugin\', \'path/to/the.js\', array( \'jquery\' ) );
您还可以通过将最后一个参数设置为true来确保脚本加载到页脚中:

wp_enqueue_script (  \'my-plugin\', \'path/to/the.js\', array( \'jquery\' ), null, true);
在哪里null 将是版本号和true 说明需要在页脚中加载脚本。

结束