【问题标题】:jQuery not detect click with script added to own WordPress theme?jQuery 没有检测到添加到自己的 WordPress 主题的脚本的点击?
【发布时间】:2015-04-18 17:42:30
【问题描述】:

我正在构建我的第一个 WordPress 主题,并且根据来自 WordPress.org 法典页面的信息添加了我自己的脚本和 jQuery,但没有任何反应,尽管搜索了数小时,我还是找不到原因!我被这个问题困住了,无处可去,需要一些帮助。

当我右键单击查看代码时,脚本和 jQuery 都在标题中。我错过了什么吗?

functions.php文件中的代码:

function add_scripts()
{
wp_register_script( 'custom-script', get_template_directory_uri() . '/js/script.js', array( 'jquery' ) );

wp_enqueue_script( 'custom-script' );
}
add_action( 'wp_enqueue_scripts', 'add_scripts' );

现在非常简单的脚本。仅用于测试:

jQuery(document).ready(function(){

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

    //Mobile menu
    $("#main-menu-mobile-btn").click(function(){
        alert("working!?");
    $("#main-menu-mobile").slideToggle("fast");
    });
});
});

这是我添加到 header.php 文件中的 HTML 代码:

<div id="main-menu-mobile-btn">test</div>

【问题讨论】:

  • 测试用例是有效还是两者都无效?是否有一些 html 来证明您选择的内容是存在的?另外,jQuery 加载了吗?
  • 为什么将(document).ready() 方法嵌套在另一个(document).ready() 中?
  • 第一个脚本是 php,所以不应该被传递给 html,检查你的 php 标签
  • 试试$("#main-menu-mobile-btn").on('click', function(){...})。你为什么要加载嵌套文档?
  • @kidA 我按照 codex 页面上关于 jQuery noConflict Wrappers codex.wordpress.org/Function_Reference/… 的说明进行操作

标签: javascript jquery wordpress-theming wordpress


【解决方案1】:

尝试用jQuery 替换$ 并删除嵌套的.ready() 方法。

这样

 jQuery(document).ready(function() {

     //Mobile menu
     jQuery("#main-menu-mobile-btn").click(function(){
        alert("working!?");
        jQuery("#main-menu-mobile").slideToggle("fast");
     });
});

【讨论】:

  • 它的工作!但是为什么它使用 jQuery 而不是 $ 符号呢?所以我根本不能使用美元符号?
  • @3D-kreativ 你有 2 个现成的函数,从你的文件中删除 $('document').ready(function() { 并删除一个 });
  • 据我所知,最好在 WordPress 网站中使用 jQuery 而不是 $。但是如果你这样写,你可以使用$ 符号。 jQuery(document).ready(function($) {});
  • 当然!感谢您的帮助,祝您有愉快的一天!
  • 很高兴为您提供帮助 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-20
相关资源
最近更新 更多