2

私のサイトでは FancyBox 1.3.1 jQuery プラグインを使用しています。jQuery 1.4.1 から 1.9.1 に切り替えた後、次のエラー メッセージが表示されるようになりました。

キャッチされないエラー: 構文エラー、認識されない式: a[rel=lightbox[ArticleImages]]

セレクターをjQueryのドキュメントに記載されているものに変更してみました:

$('a[rel="lightbox[ArticleGallery]"]')

しかし、それもうまくいかなかったので、助けていただければ幸いです。

4

3 に答える 3

2

\セレクター内の角括弧には、エスケープ文字のバックスラッシュを使用する必要があります。

変化する

$('a[rel="lightbox[ArticleGallery]"]')

$('a[rel="lightbox\\[ArticleGallery\\]"]')
于 2013-03-27T09:12:22.980 に答える
1

演算子をエスケープし[ます..jqueryはこれを属性セレクターと見なすため

$('a[rel="lightbox\\[ArticleGallery\\]"]')
于 2013-03-27T09:12:42.310 に答える
0

答えはいくつかの部分で構成されているので、ここで答えを要約します。

  1. jQuery 1.9.1 では、セレクター内の角括弧をエスケープする必要があります。アディルからの回答をご覧ください。

  2. 古いバージョンの jQuery から 1.9.1 に移行する場合、migration.js ファイルを使用して、古いサード パーティのプラグインが引き続き機能することを確認できます。フランソワ・ワールのコメントをご覧ください。

ただし、私の場合、これらの提案はどちらも機能しませんでした。それでも同じエラー メッセージが表示されます。

だから私がしたことはfancyBox2に移行することでしたが、別の問題に遭遇しました:

私のサイトは、fancyBox2 では動作しない Twitter Bootstrap 2.3.0 を使用していました。幸いなことに、このフォーラム スレッドで答えを見つけました。

私は、bootstrap.js ファイル内のコードを次のように変更する必要がありました。

.on('.dropdown-menu', function (e) { e.stopPropagation() })

これに:

.on('click.dropdown-menu', function (e) { e.stopPropagation() })

今では動作します。手伝ってくれてthx。

于 2013-03-27T10:45:00.190 に答える