0

注:私はjQueryを学んでいるので、初心者の質問を許してください。

ライトボックスギャラリーがあり、ギャラリーの「次へ」ボタンをクリックすると、次の画像が表示されますが(既に表示されているように)、他の場所をクリックすると、フェイスボックスウィンドウのポップアップが閉じます。

私はコードをかなりいじりましたが、ここで立ち往生しています:

$('#facebox :not(.image_next)').click($.facebox.close)

私が行っていたのは、(翻訳された):

「 faceboxの id を持つ div で、クリックが次のクラスの画像でない限り、facebox ウィンドウを閉じます。」

残念ながら、これは、そのクラスの画像を含め、どこをクリックしてもウィンドウを閉じます。

どんな助けでも揺れるでしょう。

4

2 に答える 2

0
 $('#facebox :not(.image_next)').click($.facebox.close)

それはあなたが望んでいたことを正確に行っています。注意するだけです。

代わりに、試してください

 $('#facebox :not(.image_next), <other objects in windows>').click($.facebox.close);

何が起こったのかというと、フェイスボックス内の画像を含む「.image_next」以外のすべてを言っているだけです。そのため、代わりに Firebug を使用して、除外する必要がある他のオブジェクトを特定するか、本当にイベントをキャンセルしたいオブジェクトにのみバインドする必要があります。

于 2011-05-05T01:00:50.630 に答える
0

クリック イベントは、「次へ」ボタンからその親である#faceboxdiv にバブリングしています。

event.stopPropagation()「次へ」ボタンのクリック ハンドラーを呼び出して、 のハンドラーによってイベントが「表示」されないようにします#facebox

于 2011-01-15T01:08:17.373 に答える