Javascript 当另一个函数被激发时,jquery停用函数
我的网页上有一个搜索功能。目前我有我的工作代码Javascript 当另一个函数被激发时,jquery停用函数,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我的网页上有一个搜索功能。目前我有我的工作代码 search.click(function () { search.attr("src", "Icons/magnifier.png").css({ "border": "2px", "border-style": "solid", "border-color": "#000000", "padding-left": "130px", "transition":
search.click(function () {
search.attr("src", "Icons/magnifier.png").css({
"border": "2px",
"border-style": "solid",
"border-color": "#000000",
"padding-left": "130px",
"transition": "all 500ms"
});
});
$('html').click(function (e) {
if (e.target.id != 'search') {
$("#search").attr("src", "Icons/magnifier2.png");
$("#search").css({
"border": "2px",
"border-style": "solid",
"border-color": "#c8c8c8",
"padding-left": "4px",
"transition": "all 500ms"
});
}
});
这个函数的作用是,当用户单击图标时,图标会改变,边框会向左扩展,然后当用户单击页面时,它会恢复正常
现在,我想添加一个悬停功能,突出显示按钮
我得到以下信息:
var search = $("#search");
search.mouseover(function (event) {
search.css({
"border": "2px",
"border-style": "solid",
"border-color": "#808080",
"padding-left": "4px",
"transition": "all 500ms"
});
});
search.mouseout(function (event) {
if (event != ('clicked')) {
search.css({
"border": "2px",
"border-style": "solid",
"border-color": "#c8c8c8",
"padding-left": "4px",
"transition": "all 500ms"
});
}
});
当我悬停时,图标的作用与我想要的一样。但是,如果我单击它,它会展开,但是如果我将鼠标移离该字段,我的mouseout函数将启动。。我试着做一个条件表达式,但我知道它错了,当边界被展开时,悬停函数不应该被激活,我该怎么做呢?
由于我是新来的,并且正在努力学习这一点,我非常希望能根据答案给出解释
您可以使用CSS和javascript来实现这一点,而无需将CSS和javascript问题混为一谈。下面是一个示例,演示了您尝试执行的操作: HTML
<div class="hoverStyles">Hover Me!</div>
<button onclick="toggleHover()">Toggle hover</button>
Javascript
function toggleHover() {
if ($('.hoverStyles').length > 0) {
$('.hoverStyles').addClass('noHoverStyles').removeClass('hoverStyles');
} else {
$('.noHoverStyles').removeClass('noHoverStyles').addClass('hoverStyles');
}
}
[编辑]下面的笔已经更新(见注释),因此它不再与此答案中的代码完全相同,两者仍然有效
如果您有任何进一步的问题,请告诉我:D您可以使用,而不必将CSS和javascript问题混合在一起。下面是一个示例,演示了您尝试执行的操作: HTML
<div class="hoverStyles">Hover Me!</div>
<button onclick="toggleHover()">Toggle hover</button>
Javascript
function toggleHover() {
if ($('.hoverStyles').length > 0) {
$('.hoverStyles').addClass('noHoverStyles').removeClass('hoverStyles');
} else {
$('.noHoverStyles').removeClass('noHoverStyles').addClass('hoverStyles');
}
}
[编辑]下面的笔已经更新(见注释),因此它不再与此答案中的代码完全相同,两者仍然有效
如果您还有任何问题,请告诉我:单击D,您应该添加一个类(顺便说一句,该类可以定义要应用的样式)。并检查它是否有
悬停
方法。现在,您应该提供一个JSFIDLE,例如,一些人会很乐意修复您的问题。单击,您应该添加一个类(顺便说一句,该类可以定义要应用的样式)。并检查它是否有悬停
方法。现在,您应该提供一个jsFiddle,例如,因此有些人会很乐意解决您的问题,请您回答。我明白你的意思,但是我没有把它包括在代码中,但是它也应该在hover上显示图像,所以我相信我需要jquery来处理hover上的这两件事情,对吗?不,你仍然可以用CSS来做这件事。我已经更新了我的笔,以显示如何使用悬停来更改正在显示的图片。我看到您的示例正在运行,但是我不确定我是否理解jquery。我添加了topnav#search:hover{}但是它不响应hover,jquery代码到底做了什么?它还能让我做的其他功能发挥作用吗?即长度>0确定,结果如何?根据你的评论,我猜不太好:)那么发生了什么?你没有得到图像吗?你能用你所做的更新你的小提琴,让我看看吗?我没有添加您建议的jquery代码,因为我不确定发生了什么。我可能有点难以处理,但我真的想了解发生了什么:)特别是.length>0以及条件表达式的实际作用。谢谢您的回答。我明白你的意思,但是我没有把它包括在代码中,但是它也应该在hover上显示图像,所以我相信我需要jquery来处理hover上的这两件事情,对吗?不,你仍然可以用CSS来做这件事。我已经更新了我的笔,以显示如何使用悬停来更改正在显示的图片。我看到您的示例正在运行,但是我不确定我是否理解jquery。我添加了topnav#search:hover{}但是它不响应hover,jquery代码到底做了什么?它还能让我做的其他功能发挥作用吗?即长度>0确定,结果如何?根据你的评论,我猜不太好:)那么发生了什么?你没有得到图像吗?你能用你所做的更新你的小提琴,让我看看吗?我没有添加您建议的jquery代码,因为我不确定发生了什么。我可能有点难以处理,但我真的想了解发生了什么:)特别是.length>0以及条件表达式的实际作用。