我是jQuery新手(這是我的第二次嘗試)。我通過谷歌和StackOverflow尋找答案,我嘗試了很多,但還沒有弄清楚我的問題的最後部分。任何幫助或指導最受讚賞。只有在特定的其他div被點擊時才顯示div
我想要做的是有一堆圖像(蘋果,南瓜,蠟燭等),當點擊時,淡出圖像,然後將文字列表中的圖像名稱截掉。然後,如果您點擊這些圖片的特定集合,它們將顯示包含交易的div。
舉例:如果點擊蘋果,梨和南瓜的圖片(以任意順序),會顯示一個交易。 另一個例子:您點擊蠟燭,蘋果,南瓜和鑰匙(以任何順序)的圖像,一筆交易將顯示。 另一個例子:您點擊一筆交易顯示的所有圖片項目(以任何順序)。
我有第一部分工作(點擊一個圖像,它淡出並從列表中刪除它的名字)。
我需要幫助的是檢查圖片的某些組合是否已被點擊,如果是的話顯示交易分區。
我在想我可以使用索引,但我一直無法使它工作。也許有更好的方法?感謝您的任何指導。
這裏是我的測試代碼到目前爲止(JSFIDDLE):
HTML
<div class="pic1">
<img width="50" height="50" src="http://us.123rf.com/400wm/400/400/chudtsankov/chudtsankov1208/chudtsankov120800002/14670247-cartoon-red-apple.jpg" />
</div>
</div>
<div class="pic2">
<img width="50" height="50" src="http://www.in.gov/visitindiana/blog/wp-content/uploads/2009/09/pumpkin.gif" />
</div>
<div class="pic3">
<img width="50" height="50" src="http://upload.wikimedia.org/wikipedia/commons/f/fc/Candle_icon.png" />
</div>
<div class="pic4">
<img width="50" height="50" src="http://tasty-dishes.com/data_images/encyclopedia/pear/pear-06.jpg" />
</div>
<div class="pic5">
<img width="50" height="50" src="http://free.clipartof.com/57-Free-Cartoon-Gray-Field-Mouse-Clipart-Illustration.jpg" />
</div>
<div class="pic6">
<img width="50" height="50" src="http://images.wisegeek.com/brass-key.jpg" />
</div>
<div id="items">
<p class="apple">Apple</p>
<p class="pumpkin">Pumpkin</p>
<p class="candle">Candle</p>
<p class="pear">Pear</p>
<p class="mouse">Mouse</p>
<p class="key">Key</p>
</div>
<div class="someText">Reveal Deal #1 after finding apple, candle and mouse</div>
<div class="deal1">This is deal box #1! You must have found apple, candle and mouse! WIN</div>
<div class="someText">Reveal Deal #2 after finding key, pumpkin, pear and mouse!</div>
<div class="deal2">This is deal box #2! You must have found key, pumpkin, pear and mouse!</div>
<div class="someText">Reveal Deal #3 after finding ALL objects!</div>
<div class="deal3">This is deal box #3! You must have ALL the items!</div>
<div id="output"></div>`
CSS
.intro, .someText {
color:#333;
font-size:16px;
font-weight: bold;
}
.deal1, .deal2, .deal3 {
font-size: 18px;
color: red;
}
的Javascript:jQuery的
$(document).ready(function() {
$('.deal1, .deal2, .deal3').hide();
$('.pic1').click(function() {
$(this).data('clicked');
$('#items p.apple').wrap('<strike>');
$(".pic1").fadeOut("slow");
});
$('.pic2').click(function() {
$(this).data('clicked');
$("#items p.pumpkin").wrap("<strike>");
$(".pic2").fadeOut("slow");
});
$('.pic3').click(function() {
$(this).data('clicked');
$("#items p.candle").wrap("<strike>");
$(".pic3").fadeOut("slow");
});
$('.pic4').click(function() {
$(this).data('clicked');
$("#items p.pear").wrap("<strike>");
$(".pic4").fadeOut("slow");
});
$('.pic5').click(function() {
$(this).data('clicked');
$("#items p.mouse").wrap("<strike>");
$(".pic5").fadeOut("slow");
});
$('.pic6').click(function() {
$(this).data('clicked');
$("#items p.key").wrap("<strike>");
$(".pic6").fadeOut("slow");
});
$(document).on('click', '*', function (e) {
e.stopPropagation();
var tag = this.tagName;
var index = $(tag).index(this); // doesn't work, as it gives the total no. elements
$('#output').html(index);
});
});
*這顯然supergeneralized,但它提供了觸發你想要的事件所必需的框架。* - 你不辜負你的名字:) –
@NicholasV我不相信給魚,我相信教學如何釣魚。而且,如果他給了適當的項目這些特定的類,它會完全按照他的意圖工作。這隻會是愚蠢的。 :) – PlantTheIdea
謝謝@PlantTheIdea - 感謝您的快速回復。這適用於在單擊任何具有類「.ItemToTrigger」的項目時顯示div(.HiddenItem),但我需要能夠單擊多個div /圖像,並且只在用戶單擊特定的幾個時才顯示交易div。這就是我遇到的麻煩。這是我的嘗試與你的答案(我可以做錯了!:P)http://jsfiddle.net/gudinne/xg3qM/1/ – leelou