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一次,就单独运行,互不干涉
展开
 我来答
百度网友992e050a8
2013-11-19 · TA获得超过583个赞
知道小有建树答主
回答量:272
采纳率:0%
帮助的人:322万
展开全部

你现在这么写是有问题的

每次点击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");
            }
        });
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wlp8436
2013-11-19
知道答主
回答量:10
采纳率:100%
帮助的人:5.9万
展开全部
其实没太明白你什么意思,但是我觉得可以这样,你想只触发一次某个事件,然后下次不触发的话,可以使用jquery的one方法,结合这个one方法里边的函数,实现你想要的逻辑
$(selector).one(event,data,function)
selector 表示元素
event 事件 你这里可以是click
function 事件触发时 执行的函数 你这里应该是要给b绑定事件吧?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Psssaa
2013-11-19
知道答主
回答量:89
采纳率:0%
帮助的人:30.7万
展开全部
$(".a").click(function(){
        //alert("a")
    if(typeof document.getElementsByClassName('b')[0].click  ='undefined'){//我觉得加一段代码来判断一下b的click是不是被初始化过了
                    $(".b").click(function(){
                        //alert("b")
            
                    })
    }
})
追问
那如果点过一次b,岂不是以后就不能点了....
追答
不会啊, b的click事件被初始化以后就会一直有值啊, 除非把click事件重新赋值了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
指着太阳说转
2015-10-13 · 超过48用户采纳过TA的回答
知道小有建树答主
回答量:179
采纳率:0%
帮助的人:60.1万
展开全部
$id.on("click", function(e){
        e.preventDefault(); //阻止默认行为
        e.stopPropagation(); //阻止事件冒泡

        /*...你的代码...*/
});
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式