有没有办法在WordPress中关闭jQuery noConflict模式?

时间:2013-07-16 21:48:59

标签: jquery wordpress

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

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

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

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

就像设置jQuery.noConflict(false)工作一样?如果是这样,你会在哪里设置它?

6 个答案:

答案 0 :(得分:12)

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

$ = jQuery.noConflict(true);

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

另请注意,您可以根据建议添加2个不同版本的jQuery(但不建议这样做)。

答案 1 :(得分:5)

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

 var $ = jQuery;

答案 2 :(得分:3)

我找到了另一种让全局变量{ "bip":"172.30.0.1/20" } 可用的方法。只需将以下内容放在主题的functions.php或插件中:

$

这将在jQuery的脚本标记之后立即输出function so17687619_jquery_add_inline() { wp_add_inline_script( 'jquery-core', '$ = jQuery;' ); } add_action( 'wp_enqueue_scripts', 'so17687619_jquery_add_inline' ); 作为内联脚本。因此,在jQuery实例可用$ = jQuery;$之后包含的任何脚本。

答案 3 :(得分:0)

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

或者你可以用jquery.com上的干净下载来替换内容,trac中正在激烈争论。

答案 4 :(得分: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();

答案 5 :(得分: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/