gpt4 book ai didi

javascript - jquery中的事件绑定(bind)问题

转载 作者:行者123 更新时间:2023-11-29 18:28:11 25 4
gpt4 key购买 nike

  <div id="parent">
<div id="children">
</div>
</div>

如果我们用相同的事件绑定(bind) parent 和 child :

     $("#parent").live({ mouseenter : Infocus , mouseleave : Outfocus });
$("#children").live({ mouseenter : Infocus , mouseleave : Outfocus });

现在我的问题是,当我将鼠标移到子项上时,父项也突出显示,有人能告诉我这是怎么回事吗?

最佳答案

您必须使用 stopPropagation() 来防止事件跟随。

function Infocus(e) {
e.stopPropagation();
// your code
}

function Outfocus(e) {
e.stopPropagation();
// your code
}

阅读 .stopPropagation()

你可以这样做:(可能不尽如人意)

$("#parent").live({
mouseenter: Infocus,
mouseleave: Outfocus
});
$("#children").live({
mouseenter: Infocus,
mouseleave: Outfocus
});

function Infocus(e) {
if(this.id == 'parent') {
$(this).css('background', 'yellow');
} else if(this.id == 'children') {
$(this).css('background', 'green');
$(this).parent().trigger('mouseleave')
}
}

function Outfocus(e) {
if(this.id == 'parent') {
$(this).css('background', 'transparent');
} else if(this.id == 'children') {
$(this).css('background', 'transparent');
$(this).parent().trigger('mouseenter')
}
}

DEMO

关于javascript - jquery中的事件绑定(bind)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10968165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com