单击事件处理程序,附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/
代码:
$(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);
});
});
你点击点击事件
'.click()'在功能上等同于'.on('click')'。换句话说,你在另一个'click'处理器中有一个'click'处理程序。内部'click'处理程序被禁用,直到外部'click'发生。整件事情没有意义,但观察到的行为完全如预期。 – Sparky 2015-04-03 15:34:58
什么的'$( “#” + AID)。在目标( “点击”,函数(){...'? – j08691 2015-04-03 15:36:40
另外'$(函数()......'在功能上等同于'$(文件) 。就绪(函数()......',让你有一个DOM准备的事件处理程序内部的DOM准备,甚至处理。 – Sparky 2015-04-03 15:40:13