关于jquery click事件重复叠加的问题

最近手写了一个三级下拉菜单,是通过jquery控制的,点击sliderdown,sliderup 发现出现了一个问题,就是三级菜单会重复触发多次,也就是当一级菜单点击多少次,三级菜单点击触发时,会发现重复触发很多次事件。我最初以为是冒泡的事件,加上了stoppropagation发现还是会多次触发我的click事件;原来是我把控制三级菜单的事件放到了控制二级菜单里面,然后每次触发 都会叠加,可以通过$('').unbind().click的方法来解决,也可以通过把函数分开的方式解决。类似与以下

$(function(){
$('.btn').click(function() {
console.log('1231');
$('.btn2').click(function() {
console.log("看我重复多少次");
})
})
})
//发现没点一次btn其btn2的事件就会触发一遍。 

处理办法

$(function(){
$('.btn').click(function() {
console.log('1231');
$('.btn2').unbind().click(function() {
console.log("看我重复多少次");
})
})
})

或者分开写该事件

原文地址:https://www.cnblogs.com/pengaijin/p/7217838.html