【问题标题】:jquery requires the word Jquery instead of $ [duplicate]jquery 需要单词 Jquery 而不是 $ [重复]
【发布时间】:2014-08-15 03:19:56
【问题描述】:

我正在开发一个 WordPress 主题,我已经包含了 Jquery,

    // Waves
    wp_enqueue_style( 'APKMirror-wave', get_template_directory_uri() . '/inc/waves/waves.min.css');
    wp_enqueue_script(
        'APKMirror-wave',
        get_stylesheet_directory_uri() . '/inc/waves/waves.min.js',
        array( 'jquery' )
    );

    // Boostrap
    wp_enqueue_style( 'APKMirror-Bootstrap', get_template_directory_uri() . '/inc/bootstrap/bootstrap.min.css');
    wp_enqueue_script(
        'APKMirror-Bootstrap',
        get_stylesheet_directory_uri() . '/inc/bootstrap/bootstrap.min.js',
        array( 'jquery' )
    );

问题是任何时候我运行 jQuery 代码我都必须输入单词 'jQuery' 而不是仅仅使用 $.如何更改我的代码以使其使用 $?

【问题讨论】:

标签: javascript jquery wordpress


【解决方案1】:

WordPress 中的 jQuery 在 noConflict 模式下运行,这意味着 jQuery 的全局 $ 快捷方式不可用。使用文档就绪包装器,这将允许 $ 用作 jQuery 的别名。

jQuery(document).ready(function($) {
    // Inside here $ can be used instead of jQuery.
});

或者

(function($) {
    // Use $ here.
})(jQuery);

感谢 Paulpro 正确指出如果您需要在其余 DOM 加载之前运行脚本,可以使用另一种方法。

【讨论】:

  • 你也可以使用jQuery(function($) { ... });
  • -1,因为您假设 OP 的脚本应该等到 DOM 准备好运行。在 DOM 的其余部分开始加载之前运行一些脚本很重要。如果你展示一个不等到 DOM 准备好运行的替代方案,例如(function($) { // Use $ here })(jQuery);,我会将 -1 切换为 +1。
  • @Paulpro - 我正在权衡是否在编写答案时添加这个替代方案,但你说得对。答案已修改。
猜你喜欢
  • 2015-06-22
  • 2017-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 2021-06-22
相关资源
最近更新 更多