.show()
これらすべてのライトボックス jquery プラグインを使用するのではなく、製品リンクの「ズーム」ボタンをクリックするたびに独自の div を作成しない理由がわかりませんでした。(各製品リンクとそのズーム ボタンは、データベースから動的に読み込まれます)。
私のウェブサイトのユーザーはズームをクリックするだけで、製品の正面のクローズアップ画像がポップアップ表示されます。問題は、ユーザーが製品の裏側を「ひっくり返して」見られるようにしたいということです。(これを行うには、画像の src を変更するだけ$('#closeup')
です。しかし、ここで問題が発生します。通常、最初のフリップは問題ありません。その後、連続する製品が拡大されるたびに、フリップが増加しているように見えます!
したがって、最初の製品では、ユーザーが「フリップ」をクリックします。つまり、前から後ろに 1 回フリップします。わかった。2 番目の製品では、ユーザーが「フリップ」をクリックします。1 回目は前から後ろにフリップし、もう 1 回は後ろから前にフリップするため、ユーザーは前の画像に戻ります。3 番目の製品、ユーザーが「フリップ」をクリック、3 回フリップ! どうしたの?
試してみevent.stopPropagation()
ましたが、違いはありませんでした。
私のコードは次のとおりです。
$('.zoom').live('click', function(e){
paths = $(this).attr('data-title').split(";"); // data-title is in the "form front_path;back_path"
// paths[0] now holds path to front image, paths[1] holds path to back image
$('#closeup').attr('src',paths[0]);
$('.flipview').click(function(e){
if($('#closeup').attr('src')==paths[0]){
e.stopPropagation() ;
alert('switching from front '+$('#closeup').attr('src')+' - to back');
$('#closeup').attr('src', paths[1]);
}else{
e.stopPropagation();
alert('switching from back '+$('#closeup').attr('src')+' to front');
$('#closeup').attr('src', paths[0])
}
});
});
基本的に、製品がズームインされるたびに、.flipview
クラスに新しいカスタム アクションが割り当てられます。
単一の製品のデータベースから読み込まれた HTML は次のとおりです。
<li> <img src="../designs_staff/product0/template0/s16_1350300633/0.jpg">
<a id="s16_1350300633" class="zoom" title="Zoom in" data-title="../designs_staff/product0/template0/s16_1350300633/0.jpg;../designs_staff/product0/template0/s16_1350300633/1.jpg" href="#"> </a>
</li>
そして、製品の拡大とともにポップアップする DIV の HTML は次のとおりです。
<div id='popup'>
<a href='#' class='flipview'>Flip</a> | <a href='#' id='closepopup'>Close</a>
<br /><img id='closeup' />
</div>