gpt4 book ai didi

javascript - 单击链接后试图防止鼠标移出

转载 作者:行者123 更新时间:2023-11-30 15:13:27 25 4
gpt4 key购买 nike

我有一个带有鼠标悬停和鼠标移开动画的导航。他们工作。我还有一个用于添加 CSS 类的点击监听器的语句。该类设置了一个 div 的高度,问题是 mouseout 也会改变这个 div。所以我想找出一种方法来在单击链接时禁用 mouseout 监听器。

我尝试解绑,但没有成功

js

var currentDiv;

function slideMenu(e) {

if(e.type === "mouseover"){
// console.log("mouseover");
TweenMax.to($(this).find('div') , 0.25, {height:20});
}
else if(e.type === "mouseout"){
// console.log("mouseout");
TweenMax.to($(this).find('div') , 0.25, {height:1});
}
else if(e.type === "click"){
console.log("click");

if (currentDiv !== undefined){
$(currentDiv).removeClass("selected");
}

currentDiv = $(this).find('div');
$(currentDiv).addClass("selected");

$(currentDiv).unbind('mouseout'); // not working



}
}

$(".menu a").click(slideMenu);
$(".menu a").mouseover(slideMenu);
$(".menu a").mouseout(slideMenu);

CSS

.selected{
height: 20px;
}

最佳答案

这会实现您的目标吗?不必担心单击事件的绑定(bind),您可以在单击事件中执行任何其他操作之前检查“选定”类。像下面这样...

var currentDiv;

function slideMenu(e) {

if(e.type === "mouseover"){
// console.log("mouseover");

var child_div = $(this).find("div")

if (!$(child_div).hasClass("selected")) {
TweenMax.to($(this).find('div') , 0.25, {height:20});
} else {
$(child_div).attr("style", "") // remove inline styles attr, so that height is based on css instead of JS
}
}
else if(e.type === "mouseout"){
// console.log("mouseout");

var child_div = $(this).find("div")
if (!$(child_div).hasClass("selected")) { // check to see if selected/clicked on
TweenMax.to($(this).find('div') , 0.25, {height:1})
} else {
$(child_div).attr("style", "") // remove inline styles attr, so that height is based on css instead of JS
}
}
else if(e.type === "click"){
console.log("click", this);

if (currentDiv !== undefined){
$(currentDiv).removeClass("selected");
}

currentDiv = $(this).find('div');

$(currentDiv).addClass("selected");
}
}

$(".menu a").click(slideMenu);
$(".menu a").mouseover(slideMenu);
$(".menu a").mouseout(slideMenu);

关于javascript - 单击链接后试图防止鼠标移出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44807641/

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