2014-02-19 15 views
1

我在某些任務中遇到了一些困難。我有下面的代碼如何應用.one()不適用於每個對象

$(document).ready(function() { 
    var Result = 0; 
    var stop_process = false; 
    $('img').click(function(){ 
      if(!stop_process){ 
       if($(this).hasClass('home')){ 
         stop_process = true; 
       $('body').append('<div class="message">Your Result is: </div>' + Result); 
      } 
      if($('img.home').length == 0) 
         $(this).addClass('home'); 

      var $elem1 = $(this).parent(); 
      var $elem2 = $('span.last'); 
      $(this).toggleClass('selected'); 
       if ($elem2.length > 0) { 
         connect($elem1[0], $elem2[0], "#0F0", 5); 
       } else { 
       $elem1.addClass('last'); 
      } 
      $('span').removeClass('last'); 
      $elem1.addClass('last'); 
     Result++; 
     } 
    }); 

我想禁止第二次點擊,這樣我就會有一個完整的圓,我已經通過所有的對象了一次。如果我應用.one()我得到我想要的,但我無法完成該圓,因爲主對象仍然不可點擊。有什麼辦法可以解決這個問題嗎?要將.one()應用於每個對象,而不是「家」?

在此先感謝!

整個代碼:

http://jsfiddle.net/N2Pdc/

+0

使用過的方法! –

回答

0

嘗試使用jQuery off,你可以建立,如果它周圍的語句來幫助你實現這一目標。在變量中存儲您點擊的第一個元素,並且有一個計數器,因此您可以確保在點擊之前的所有其他元素時只能點擊第一個對象(關閉該圓圈)。

+0

我真的很感激代碼示例,沒有櫃檯,只是一個新結構的快速分析。謝謝:) – user3095198

0

如果你想使用。一是您可以使用jQuery的過濾:不()$(body:not(.home))

+0

請原諒我的愚蠢問題,但我如何插入代碼行,以便它的工作。(我相對較新的JavaScript) – user3095198

+0

也許我誤解了你... $('img:不是(.home)')。點擊(/ *你的功能* /) – Vasily

+0

我可以;似乎使它的工作,但無論如何感謝:) – user3095198