jQuery脚本+兼容性

时间:2011-02-12 00:17:18

标签: jquery

以下jQuery脚本会在我的网站上与其他java / mootools脚本产生兼容性问题 - 我可以做些什么来使它更多兼容?

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>         
<script type="text/javascript">                                         
   $(document).ready(function() {
      $('a[href^="http://"]').filter(function() {return this.hostname && this.hostname !== location.hostname;}).attr('target', '_blank');
   });                     
</script>

注意 - 该脚本旨在在新窗口中打开外部链接。

2 个答案:

答案 0 :(得分:2)

是的,要么将所有$替换为jQuery,要么使用jQuery的noConflict()模式,该模式不会将jQuery分配给$

或者你可以这样做......

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>         
<script type="text/javascript">                                         
   jQuery(document).ready(function($) {
      $('a[href^="http://"]').filter(function() {return this.hostname && this.hostname !== location.hostname;}).attr('target', '_blank');
   });                     
</script>

...因为该匿名函数的第一个参数是jQuery名称空间。在这里,我已在内部将其重新分配给$

它应该按预期工作。

答案 1 :(得分:0)

详细说明兼容性问题的含义。

您可能需要使用jQuery.noConflict(),尤其是在将jQuery与其他库(如MooTools)结合使用时。

但是,既然你已经拥有MooTools,为什么不用它呢?