私はDrupal環境でJQueryを使い始めました。Jquery toggle()、hide()が期待どおりに動作しない
サムネイルをいくつか表示しています。クリックすると、大きな画像が「ビューポート」に表示されます(隠しdivが表示されます)。私がやっていることを達成するより良い方法があるかもしれませんが、私はこのようにする必要があります。
これは私が持っているものです。
$(document).ready(function() {
//$('#bigpic1').hide(); //show the first big picture always on page load
$('#bigpic2').hide();
$('#bigpic3').hide();
$('a#thumb1').click(function() {
$('#bigpic2').hide(); $('#bigpic3').hide();
$('#bigpic3').toggle(200);
return false;
});
$('a#thumb2').click(function() {
$('#bigpic1').hide(); $('#bigpic3').hide();
$('#bigpic2').toggle(200);
return false;
});
$('a#thumb3').click(function() {
$('#bigpic1').hide(); $('#bigpic2').hide();
$('#bigpic3').toggle(200);
return false;
});
});
醜いコードであることに加え、それが正しい動作しません。最初の大きな画像はページが表示されていないときに表示され、さらにサムネイルをクリックすると右のdivが表示されますが、何も表示されません(「ビューポート」では一度に1つの大きな画像しか表示されません)。
私のHTMLはこの
<table><tr>
<td><a href="#" mce_href="#" id="thumb1">...thumb1...</td>
<td><a href="#" mce_href="#" id="thumb2">...thumb2...</td>
<td><a href="#" mce_href="#" id="thumb3">...thumb3...</td>
</tr>
<tr><td colspan="3">
<!-- my "viewport" cell -->
<!-- the big picture displays here -->
<div id="bigpic1">... </div>
<div id="bigpic2">...</div>
<div id="bigpic3">...</div>
</td></tr></table>
なぜあなたはいくつかを隠して他のものを切り替えていますか?効果的に手動で画像を切り替えるので、単にhide()とshow()を使用しないでください。 – Soviut
あなたはそれらの ''タグを正しく終了していますか?あなたの最初のハンドラで、あなたは '#bigpic1'をトグルする必要があります。ここで遊ぶべきもの:http://jsfiddle.net/sje397/R5Fsh/ – sje397
私にJSFiddleを見せていただきありがとうございます! –