2015-04-03 127 views
1

我有我的jQuery代碼的問題。單擊事件處理程序,附jQuery,不會觸發

當我點擊列表中的某個名稱,什麼也不會發生,第二次點擊矩形是改變顏色,同樣的問題仍然存在,直到每個列表的標籤被點擊了兩次。

$(document).ready(function() { 
    var blankMap = $('#path1, #path2, #path3'); 
    var bgtext = $('#1, #2, #b3'); 


    $(function() { 

     $("a").click(function() { 
      var aID = $(this).attr("id"); 

      $("#" + aID).on("click", function() { 
       $(bgtext).css('background-color', 'white'); 
       $(blankMap).attr("fill", "#ECECEC"); 
       $("#path" + aID).attr("fill", "#C8D538"); 
      }); 


     }); 
    }); 
}); 

http://jsfiddle.net/2rg1sujb/

不知道如何解決這個問題... =/

+1

'.click()'在功能上等同於'.on('click')'。換句話說,你在另一個'click'處理器中有一個'click'處理程序。內部'click'處理程序被禁用,直到外部'click'發生。整件事情沒有意義,但觀察到的行爲完全如預期。 – Sparky 2015-04-03 15:34:58

+1

什麼的'$( 「#」 + AID)。在目標( 「點擊」,函數(){...'? – j08691 2015-04-03 15:36:40

+0

另外'$(函數()......'在功能上等同於'$(文件) 。就緒(函數()......',讓你有一個DOM準備的事件處理程序內部的DOM準備,甚至處理。 – Sparky 2015-04-03 15:40:13

回答

1

http://jsfiddle.net/2rg1sujb/1/

代碼:

$(document).ready(function() { 

    var blankMap = $('#path1, #path2, #path3'); 
    var bgtext = $('#1, #2, #b3'); 
    $("a").click(function() { 
     var aID = $(this).attr("id"); 
      $('#1, #2, #b3').css('background-color', 'white'); 
      $('#path1, #path2, #path3').attr("fill", "#ECECEC"); 
      $("#path" + aID).attr("fill", "#C8D538"); 
      return(false); 

    }); 
    }); 

你點擊點擊事件

相關問題