15

jQuery.noConflict有没有办法在 WordPress 中关闭?我并不是说加载 jQuery 的替代版本或更改加载方法,即:

jQuery(document).ready(function( $ ) { ... });

或者

(function($) { ... })( jQuery );

我的意思是有没有办法关闭noConflict与 WordPress 捆绑的 jQuery 版本的模式?

喜欢设置jQuery.noConflict(false)工作吗?如果是这样,你会在哪里设置它?

4

6 回答 6

16

经过一番研究,这是我能给你的最佳答案:

$ = jQuery.noConflict(true);

要回答您的另一个问题,不,您不能传入 false,该属性用于控制全局变量会发生什么。你可以在这里找到文档:http: //api.jquery.com/jQuery.noConflict/

另请注意,您可以按照它的建议加载 2 个不同版本的 jQuery(但不推荐)。

于 2013-07-16T22:37:57.703 回答
6

如果您包含自己的 javascript 库或脚本,则可以将以下内容添加到最顶部:

 var $ = jQuery;
于 2013-12-07T14:04:19.120 回答
5

我找到了另一种使变量$全局可用的方法。只需将以下内容放入主题的 functions.php 或插件中:

function so17687619_jquery_add_inline() {
    wp_add_inline_script( 'jquery-core', '$ = jQuery;' );
}
add_action( 'wp_enqueue_scripts', 'so17687619_jquery_add_inline' );

这将$ = jQuery;在 jQuery 的脚本标记之后立即作为内联脚本输出。因此,包含在之后的任何脚本都可以使用 jQuery 实例$jQuery.

于 2017-02-16T20:15:46.983 回答
0

添加这个最终对我有用:

var $ = jQuery.noConflict();

您可以在 head 部分的 header.php 文件中添加它:

<script>var $ = jQuery.noConflict();</script>

或者,如果您使用子主题,请将其添加到子主题目录中的 functions.php 中:

function my_scripts_method() {
    wp_enqueue_script(
        'custom-script',
        get_stylesheet_directory_uri() . '/main.js',
        array( 'jquery' )
    );
}
add_action( 'wp_enqueue_scripts', 'my_scripts_method' );

并在与 functions.php 相同的位置(在子主题目录中)创建一个 main.js 文件,并在该文件中添加以下内容:

var $ = jQuery.noConflict();
于 2016-03-09T15:24:50.670 回答
0

你最好写在functions.php中

函数wp_deregister_script用于删除已注册的脚本。

function remove_default_jquery()
{
  // if is not admin screen
  if (!is_admin()) {
//this function
    wp_deregister_script('jquery');
}


//wp_enqueue_scripts is WordPress fook for JavaScript
add_action('wp_enqueue_scripts', 'remove_default_jquery');

在 WordPress 中使用 jQuery 时

您可以像往常一样使用 jQuery

<script type="text/javascript">

//jQuery in WordPress
jQuery(function($){
    $('.carousel').carousel();
    $('.count_num').counterUp({
    delay: 10,
    time: 1000
    });
});
</script>

公开文件在这里

https://developer.wordpress.org/reference/functions/wp_deregister_script/

于 2020-12-05T06:43:20.733 回答
-1

要关闭,请转到您的wp-includes/js/jquery/jquery.js文件并jQuery.noConflict()从最后一行删除。或者按照您的建议,只需将布尔值设置为 false。

或者你可以用从 jquery.com 下载的内容替换内容,在trac中正在进行激烈的辩论。

于 2013-07-16T21:52:17.763 回答