单击事件处理程序,附jQuery,不会触发

问题描述:

我有我的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

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); 

    }); 
    }); 

你点击点击事件