IF ELSE Hover语句仅适用于第二次悬停
IF ELSE Hover statement only works on second hover
我有一个菜单,当你滚动图像时,图像会发生变化,除非图像附加了一个活动类。我的问题是,图像只在第二次翻滚时发生变化,而不是第一次。有什么想法吗?
$("#contact").hover(function () {
if ($("#contact").is(".active")) {
$("#contact img").attr("src","Images/Menu/contact_hover.png" )
}
else {
$("#contact").hover(function () {
$("#contact img").attr("src","Images/Menu/contact_hover.png" )
},
function() {
$("#contact img").attr("src","Images/Menu/contact.png" )
});
}
});
你不应该用jQuery来做这件事,真的没有必要。请阅读CSS图像精灵并使用CSS悬停选择器,如下所示:
#contact {
background: url(/url/of/img) no-repeat;
}
#contact:hover {
background-position: ; // Change to desired image
}
这样做可以改变你使用的图像精灵的背景位置,如果你懒惰的话,你可以改变图像的位置,而不是麻烦精灵。您会发现这种方法的页面大小要轻得多,而且兼容性。
这是因为在else块第一次运行之前,您不会对hover
进行第二次调用。在$(document).ready
中设置所有的事件处理程序,就可以开始了。
您应该简化代码-试试这个
$("#contact").hover(function () {
if (!$("#contact").hasClass("active")) {
$("#contact img").attr("src","Images/Menu/contact_hover.png" )
}
},
function() {
if (!$("#contact").hasClass("active")) {
$("#contact img").attr("src","Images/Menu/contact.png" )
}
});
工作示例位于:http://jsfiddle.net/HNGMT/
**该示例使用两个div来演示具有active
类的div和不具有类的div之间的区别。cours的HTML也仅用于演示目的。contact
类的jQuery选择器将被修改以反映id选择器。
HTML:
<div class="contact"><img src="/contact.png" alt="contact inactive" /></div>
<div class="contact active"><img src="/contact.png" alt="contact active" /></div>
JavaScript:
$(".contact").hover(function () {
$(this).find("img").attr({src:"contact_hover.png", alt:"contact hover"});
}, function(){
var ele = $(this);
if(!ele.hasClass("active")){
ele.find("img").attr({ src:"contact.png", alt:"contact inactive"});
}
});
相关文章:
- 循环中的切换脚本只适用于第一次迭代
- Sails.js/Waterline.add()和.remove()仅适用于第二次调用
- jQuery表单验证(如果==“执行此操作”)仅适用于第一次输入
- Jquery函数只适用于第二次单击
- SlideJS隐藏仅适用于一次
- jQuery表单验证只适用于一次发布
- 弹出模式仅适用于表格中的第一个元素,第二次单击后不会再次打开
- 点击事件只适用于第二个帖子
- jQuery animate()仅适用于第二次单击
- 边框颜色更改仅适用于第一次
- .select()适用于第一次单击,而不是第二次单击
- Jquery组合选择的结果和一些变量's值仅适用于第一次选择更改
- jquery悬停函数具有CSS转换效果,仅适用于第二次悬停
- Javascript mouseover/mouseout动画仅适用于第一次迭代
- JavaScript/jQuery只适用于第二次点击
- appendChild只适用于第一次
- 第一次点击后饼状图不更新?onClick只适用于第一次
- IF ELSE Hover语句仅适用于第二次悬停
- jquery只适用于第二次单击(但在localhost..中运行良好)
- iPad上的响应式设计只适用于一次