2011-02-12 17 views
0

次のjQueryスクリプトは、私のサイトの他のjava/mootoolsスクリプトとの互換性の問題を作成します - それを行うために何かできますかもっとは互換ですか?jQueryスクリプト+互換性

<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

はい、$jQueryに置き換えるか、jQueryに$を割り当てないjQueryのnoConflict()モードを使用してください。

それとも、これを行うことができます...

<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の名前空間ですので。ここで私はそれを内部で$に再割り当てしました。

期待どおりに動作するはずです。

0

互換性の問題が何を意味するかを詳しく説明します。

jQuery.noConflict()を使用する必要があります。特に、jQueryをMooToolsなどの他のライブラリと組み合わせて使用​​する場合は、

しかし、既にMooToolsを使用しているので、代わりにMooToolsを使用するのはなぜですか?