我在我的项目中使用jQuery,我在.prepend()中遇到了一些问题。请转到http://qlimp.com并使用此用户名/密码登录:dummy / dummy然后单击链接转到信息设置。点击添加服务按钮 - >然后点击脸谱图标 - >只需点击添加按钮
即可您会看到蓝色脸谱标签。当您再次执行该过程时,您将看到三个 facebook标记(一次添加两个标记)而不是两个。这就像前两次没有。以前的标签。为什么会这样?
这是jQuery代码:
$("#facebook").click(function(){
$("#facebook-info").fadeIn("slow");
$("#facebook-button").click(function(){
a = a+1;
$("#service-sets").prepend('<div class="tag" id="'+a+'"><span class="blue-tag">Facebook<span class="delete-tag"><i class="icon-cancel-circle-1" id="facebook-del"></i></span></span></div>');
});
});
$("#service-sets").on('click', '#facebook-del', function() {
$("#facebook-tag").remove();
});
HTML
<div id="service-sets">
</div>
我刚刚使用示例代码检查了jsfiddle http://jsfiddle.net/YVZH5/并且它正在工作(一次添加一个标记)。谁能告诉我我犯过的错误?
谢谢!
答案 0 :(得分:1)
仅使用一个click
事件。您正在为父元素和子元素执行此操作。
$("#facebook-button").click(function(){
$("#facebook-info").fadeIn("slow");
a = a+1;
$("#service-sets").prepend('<div class="tag" id="'+a+'"><span class="blue-tag">Facebook<span class="delete-tag"><i class="icon-cancel-circle-1" id="facebook-del"></i></span></span></div>');
});
并确保,如果您将click事件限制为父级和子级div,则当您单击子级div时,您将停止父级事件事件。您可以使用stopPropagation
来停止冒泡事件的执行。