まず、これが私が達成しようとしていることです。画像の親指といくつかの基本的な情報を含むオブジェクトのリストがあります。画像をクリックして画像の大きなバージョンを表示したり、オブジェクト情報の他の場所をクリックして、オブジェクトに関する多くの追加情報を含むDIVを展開したりできます。
私はこれをjqueryUIアコーディオンとyoxviewの組み合わせで動作させましたが、yoxviewはいくつかのブラウザーで非常に苦痛を与えていたため、ColorBoxに置き換えることにしました。
ここに問題があります。これは機能していますが、画像をクリックすると、ColorBoxが正常に開きますが、アコーディオンもトリガーされますが、もちろんそうではありません。たとえば、追加情報をクリックして開き、親指をクリックして画像を拡大すると、アコーディオンが閉じるため、これらのオブジェクトをナビゲートしてチェックするのは簡単ではなく、本当に苦痛になります。
設定は次のとおりです。
<div id="list-accordion">
<div class="list-accordion-header">
<span class="list-thumb-container">
<a href="someplace_thumb.jpg" title="some title" class="group1">
<img src="somplace_large.jpg" />
</a>
</span>
<div class="list-basic-details">
The basic explanation comes here
</div>
</div>
<div class="list-extra-detail">
All the rest of the information in the panel of the accordion
</div>
</div>
ドキュメントの準備ができたら、次のようになります。
$("#list-accordion").accordion(
{
icons: false ,
autoHeight : false ,
active: false ,
header: '.list-accordion-header' ,
collapsible: true
}
);
およびColorBoxの場合:
$(".group1").colorbox({rel:'group1'});
(1つのオブジェクトに複数の画像がある可能性があるため、relを使用します。htmlの例を簡略化しました)
画像がクリックされたときに確認するために、私は通常、次の行のコードを使用します。
$(".group1").click(function(e){ e.stopPropagation(); });
ただし、stopPropagationを無数の方法で試しましたが、試行するたびにColorBoxが妨害されます。大きな画像は問題なく開きますが、ライトボックスではなくウィンドウ自体に表示されます。
要するに、yoxviewとは異なり、クロスブラウザで動作するライトボックスがあることは知っていますが、画像をクリックするとアコーディオンがトリガーされるという望ましくない副作用があります。
画像(リンク)がアコーディオンヘッダー内にあるにもかかわらず、それをクリックするとColorBoxがトリガーされますが、アコーディオン自体はトリガーされないようにするために、ここで助けていただければ幸いです。
乾杯。