0

OK、WordPressサイトがあります。かなりの数のjQueryスクリプトを使用し、jQueryはページのヘッダーに読み込まれます。画像リンクにクラスを追加するだけの小さなコードブロックがあります。</body>これをドキュメントの下部、タグの直前に配置しました。

<script type="text/javascript">
$.noConflict();
$(document).ready(function () {
$('a[href*=".png"], a[href*=".gif"], a[href*=".jpg"]').addClass('zoom');
});
</script>

スクリプトが機能せず、Firebugが$ is undefinedエラーを表示します。私は他のさまざまな同様の質問をチェックしましたが、答えは役に立たないようです。

ソースページはこちらです:http ://sergedenimes.com/2013/01/bruno-bisang-30-years-of-polaroids/

競合を引き起こしている別のプラグインであると確信していますが、これを解決する方法についてのガイダンスをいただければ幸いです。

編集:非常に迅速な対応に感謝します。$未定義の以前のプラグインレンダリングだったようです。との置き換えjQueryは解決しました。

4

3 に答える 3

6

あなたはすでにjQuery.noConflict();あなたのコードの前半でそれを行ったので、$未定義になりました。

ソースコードの79行目を見てください。

于 2013-01-23T19:18:35.870 に答える
3

$.noConflict();jQueryがロードされる前の$シンボルを以前の定義に戻します。そのシンボルを使用している他のライブラリがなかった場合は、に戻りundefinedます。それがその目的です。

これを使用し、他のシンボルをのショートカットとして定義しない場合は、の代わりにjQuery関数のシンボルとしてjQuery使用する必要があります。jQuery$

代わりにこれを行ってください:

<script type="text/javascript">
$.noConflict();
jQuery(document).ready(function () {
    jQuery('a[href*=".png"], a[href*=".gif"], a[href*=".jpg"]').addClass('zoom');
});
</script>

$または、ハンドラー内でのみ使用しようとしている場合は、次のような.ready()機能を使用してハンドラーを割り当てることができます。.ready()

<script type="text/javascript">
$.noConflict();
jQuery(document).ready(function ($) {
    $('a[href*=".png"], a[href*=".gif"], a[href*=".jpg"]').addClass('zoom');
});
</script>

.ready()または、使用したいハンドラーだけではないコードがある場合は、他のライブラリが独自のコードで使用できるようにするクロージャーで$再定義できますが、クロージャー内のjQueryコードでjQueryに使用できます。$$

<script type="text/javascript">
$.noConflict();
(function($) {
    $(document).ready(function () {
        $('a[href*=".png"], a[href*=".gif"], a[href*=".jpg"]').addClass('zoom');
    });
    $.each(whatever...)
})(jQuery);
</script>

または、jQueryの新しいショートカットシンボルを定義できます。

<script type="text/javascript">
var $$ = $.noConflict();
$$(document).ready(function () {
    $$('a[href*=".png"], a[href*=".gif"], a[href*=".jpg"]').addClass('zoom');
});
</script>
于 2013-01-23T19:19:45.503 に答える
1

試す:

<script type="text/javascript">
    jQuery.noConflict();
    jQuery(document).ready(function($) {
        $('a[href*=".png"], a[href*=".gif"], a[href*=".jpg"]').addClass('zoom');
    });
</script>
于 2013-01-23T19:18:23.277 に答える