2013-05-20 51 views
0

以下是我想要做的。我有兩個按鈕提示0,是或否。如果您點擊是,則該框移動到左側,然後消失,並顯示提示1。如果單擊否,則該框向右移動,提示2顯示。我正在使用Z-index來告訴它哪個提示應該在最上面。現在,當我點擊是時,它會提示1,如果我點擊是或否按鈕的區域,則不會發生任何事情。這裏一切都很好。使用一次點擊命令,然後禁用它

當我點擊否,它淡出(不會離開,但那不是我主要關心的)並且提示2​​.但是當我點擊區域(是的不能被看見)時,是的,它會提示1.我嘗試了在兩個腳本上解除綁定點擊,但它不起作用。我究竟做錯了什麼?

由於

$(document).ready(function() { 
    $('.appIMG1').one('click.appIMG1',function() { 
     $(this).unbind('click'); 
     $("#app1").animate({ 
      left: '250px', 
      opacity:0 
     }); 
     $("#app2").fadeIn('slow'); 
    }); 
}); 


$(document).ready(function() { 
    $(".appIMG2").one('click.appIMG2', function() { 
     $(this).unbind('click'); 
     $("#app1").animate({ 
      right: '250px', 
      opacity:0 
     }); 
     $("#app3").fadeIn("slow"); 
    }); 
}); 

用於提示0 Z指數爲10,用於提示1是9,用於提示2分別是8。

+0

我們可以得到一個這個jsfiddle? – Jake

回答

0

您需要解除所有事件的點擊事件,而不僅僅是被點擊的項目。除了使用$(this).unbind('click'),你需要從所有點擊元素解除綁定,這樣的(這僅僅是使用第二按鈕的例子,但它會需要兩個做):

$(".appIMG2").one('click.appIMG2', function() { 
    $('.appIMG1, .appIMG2').unbind('click'); 
    $("#app1").animate({ 
     right: '250px', 
     opacity:0 
    }); 
    $("#app3").fadeIn("slow"); 
    }); 
}); 
+0

謝謝傑克。這工作! 我還有另一個問題,我試圖讓它左轉動畫,當我點擊yes時,它通過向左移動和淡入淡出來進行動畫處理。但是,如果單擊否,我不希望它移動到右側,並在我單擊否時褪色,但在第二個腳本中替換左側時右側不起作用。它只是淡出。它在我使用左側但不正確時起作用。我究竟做錯了什麼? –

+0

你的CSS非常複雜,所以很難破譯。我建議大部分重構。然而,如果你不想這樣做,只想讓盒子向右移動並淡出,你應該將'right:'250px''改成'left:'550px''或某些這樣的數字。再說一次,這不是一個好的解決方案,但它適用於您的特定代碼。 http://jsfiddle.net/jakelauer/4ZQLq/5/ – Jake

相關問題