jquery 事件冒泡怎么解决
$(".a").click(function(){//alert("a")$(".b").click(function(){//alert("b")})})我的.b的事件...
$(".a").click(function(){
//alert("a")
$(".b").click(function(){
//alert("b")
})
})
我的.b的事件是依赖.a的事件才能触发的,
但是我不想点了多次.a的话,点一次.b就让b里重复多次
换句话b依赖a发生,但是只触发a一次,就单独运行,互不干涉 展开
//alert("a")
$(".b").click(function(){
//alert("b")
})
})
我的.b的事件是依赖.a的事件才能触发的,
但是我不想点了多次.a的话,点一次.b就让b里重复多次
换句话b依赖a发生,但是只触发a一次,就单独运行,互不干涉 展开
展开全部
你现在这么写是有问题的
每次点击a都会给b绑定一个事件
当你点第二次a时 b就有了2个alert事件 所以会执行2次
如果你想建立依赖关系 可以换种思路
不妨通过一个flag 来保存a的点击状态
当a点击过 则b的点击要执行的代码生效
var aClicked = false ;
$(".a").click(function(){
alert("a");
aClicked = true;
});
$(".b").click(function(){
// 这样来建立依赖关系
if(aClicked){
alert("b");
}
});
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实没太明白你什么意思,但是我觉得可以这样,你想只触发一次某个事件,然后下次不触发的话,可以使用jquery的one方法,结合这个one方法里边的函数,实现你想要的逻辑
$(selector).one(event,data,function)
selector 表示元素
event 事件 你这里可以是click
function 事件触发时 执行的函数 你这里应该是要给b绑定事件吧?
$(selector).one(event,data,function)
selector 表示元素
event 事件 你这里可以是click
function 事件触发时 执行的函数 你这里应该是要给b绑定事件吧?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
$(".a").click(function(){
//alert("a")
if(typeof document.getElementsByClassName('b')[0].click ='undefined'){//我觉得加一段代码来判断一下b的click是不是被初始化过了
$(".b").click(function(){
//alert("b")
})
}
})
追问
那如果点过一次b,岂不是以后就不能点了....
追答
不会啊, b的click事件被初始化以后就会一直有值啊, 除非把click事件重新赋值了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
$id.on("click", function(e){
e.preventDefault(); //阻止默认行为
e.stopPropagation(); //阻止事件冒泡
/*...你的代码...*/
});
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询