0

良い一日

次のように、header.phpファイルにjqueryを含めています。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" ></script>

しかし、これを行うと、ホームページスライダーが壊れ、グーグルマップの究極のプラグインやその他のものが壊れます。それを除外すると、カスタムjqueryは私のページで実行されません...jqueryを使用している必要があるスライダーのみが機能します...

それで、jqueryがすでに私のサイトで実行されている場合(テーマなどでjqueryを緩和しているため)、タグでファイルに追加したカスタムjqueryコードが機能しないのはなぜですか?ただし、上記のようにjqueryを含めると、カスタムコードは実行されますが、他のプラグインが壊れます...

何故ですか?

ありがとうございました

4

2 に答える 2

2

jQuery1.9.1は多くの関数を非推奨にしました。jQuery Migrate 1.1.1を使用するか、1.8.3にダウングレードしてみてください

于 2013-03-17T16:33:08.957 に答える
1

カスタムjQueryコードがWordPressに含まれている既存のjQueryで実行されていない理由は、おそらくWordPressのjQueryがnoconflictで設定されているためです。noconflictメソッドは、jQueryで使用されている「$」ショートカットを放棄します。これは、それに依存するコードを意味します。

$("p").hide();

... $はjQueryオブジェクトを表さないため、機能しません。このようにカスタムコードをラップしてみてください。これは、$オブジェクトを取り戻すための標準的な方法です(このページからの例)。

jQuery(function ($) {
/* You can safely use $ in this code block to reference jQuery */
    $("p").hide();
});

これは、いくつかの異なるJavaScriptライブラリ$が「ショートカット」変数(MooToolsなど)として使用され、サードパーティのWordPressプラグインとテーマに他のJavaScriptライブラリが含まれていることが多いためです。放棄$して、実際に使用するオブジェクトを正確に指定することは、WordPressによって複数のライブラリが単一のページにロードされるときに競合を最小限に抑える方法です。

したがって、ここのヒント1wp_enqueue_scriptに示すように、WordPressの標準バージョンのjQueryがテーマで利用できることを確認します(おそらくfunctions.phpで使用します) 。

function my_init() {
    if (!is_admin()) {
        wp_enqueue_script('jquery');
    }
}
add_action('init', 'my_init');

...そして、上記の「map-jQuery-back-to- $」ラッピングメソッドを追加して独自の関数で使用することは、総合的な互換性のために最適です。jQueryを必要とする現在のほとんどのWordPressテーマとプラグインは、WordPressで出荷バージョンのjQueryを使用するように作成されており、おそらく同じことを行う必要があります。

于 2013-03-17T16:40:15.147 に答える