1

カスタム jQuery 拡張機能を Drupal 7 に結び付けようとしていますが、スクリプト内の「this」オブジェクトで問題が発生しています。

私のコードは競合をサポートするために適切にラップされており、drupal の外部では正常に動作しますが、drupal ページの同一のコードは失敗します。

拡張機能の先頭に console.log(this) を追加したところ、drupal の外部で、一致するノードを内部に持つ適切な jQuery オブジェクトを取得できることがわかりました。drupal の内部では、一致する要素だけを取得します。

Drupal 7 には jQuery 1.4.4 があり、私のコードは jQuery 1.4.2 と 1.6.2 で正常に動作します。

これについて何ができますか?

4

2 に答える 2

1

コードを見なければ、適切な答えを出すことは困難です。私はしばらく前に同様の(聞こえる)問題に遭遇し、この手法を使用して Drupal 7 サイトでインライン JQuery をラップし、これで問題が解決しました。

(function($) {
    $(document).ready(function(){

        // Insert your code here.

    });
})(jQuery);

$問題は、Drupal 7 が名前空間に厳密であり、Drupal 6 で行うことができたように関数エイリアスとしてデフォルトを許可しないことです。

于 2011-07-11T03:13:48.413 に答える
0

Drupal のもう 1 つの手法は、jQuery を次のようにラップすることです。

jQuery(document).ready(function($) {
  // Insert code here.
});
于 2012-01-30T18:43:54.353 に答える