以下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>
注意 - 该脚本旨在在新窗口中打开外部链接。
答案 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,为什么不用它呢?