jquery工具,两个引用相同的库,以使脚本工作

时间:2012-09-20 16:04:25

标签: jquery reference

我有一个Wordpress主题,其功能取决于jquery库jquery.tools。在我的头文件中:

//header.php

<script src="http://cdn.jquerytools.org/1.2.7/full/jquery.tools.min.js"></script>
<script type="text/javascript">

  $(document).ready(function(){
         $("#trigger-button-53").tooltip({effect:'slide'});
  })
</script>

<script type="text/javascript">

  $(document).ready(function(){
$('#accordion-slider').kwicks({  
    max : 750,  
    spacing : 1
});  
  });
</script>

在我的自定义functions.php文件中:

// functions.php
<?php
function my_scripts_method() {

    wp_enqueue_script('tools', 'http://cdn.jquerytools.org/1.2.7/full/jquery.tools.min.js', '', '', true );  
    $kwicks_url = get_template_directory_uri().'/js/jquery-kwicks-1.5.1.js';
    wp_enqueue_script('jquery-kwicks', $kwicks_url, '', '', true);
    wp_enqueue_script('jquery', "https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js", '', '', true );
}    

add_action('wp_enqueue_scripts', 'my_scripts_method'); // For use on the Front end (ie.    Theme)

?>

两种方法都返回:     http://cdn.jquerytools.org/1.2.7/full/jquery.tools.min.js?ver=3.4.2

就目前而言,通过这种方式,我所有的javascript方法都具有魅力。但我正在引用

http://cdn.jquerytools.org/1.2.7/full/jquery.tools.min.js

两次让它全部运转?如果我省略了header.php文件中的直接引用,即使两个方法都成功加载了库,我的脚本也无法工作。此外,我们不应该在WP主题的头文件中粘贴对脚本的直接引用(子主题是特定的),因为这是不好的做法。您可能已经注意到我在使用

时在页脚中加载脚本
my_scripts_method();

但如果我在标题中加载它们没有任何区别。稍微偏离正切,我假设:

wp_enqueue_script( 
 $handle
,$src
,$deps
,$ver
,$in_footer 
);

$ handle可以是任何字符串,即

wp_enqueue_script('fried-egg', 'http://example.com/path/to/jquery.js');    
wp_enqueue_script('tools', 'http://example.com/path/to/jquery.js');

同样有效吗?

WTF正在进行中? :)

1 个答案:

答案 0 :(得分:0)

确保jQuery仅在 jQuery工具之前加载。如果之后加载jQuery,jQuery插件的任何引用都将被新版本的jQuery覆盖。这就是为什么你必须两次包含jQuery工具(一次在jQuery被覆盖之前,删除对jQuery工具的引用,然后再次包含jQuery之后)。

wp_enqueue_script('jquery', "https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js", '', '', true );
wp_enqueue_script('tools', 'http://cdn.jquerytools.org/1.2.7/full/jquery.tools.min.js', '', '', true );  
$kwicks_url = get_template_directory_uri().'/js/jquery-kwicks-1.5.1.js';
wp_enqueue_script('jquery-kwicks', $kwicks_url, '', '', true);