我有三个“标签”,我使用的图像如下:-
对于每个选项卡,有三个图像:-
- bookaccount.png (默认 - 橙色)
- bookaccount-a.png(活动 - 白色)
- bookaccount-h.png(悬停 - 蓝色)
bookcash.png 和 bookguest.png 也是如此。
默认情况下,我希望“来宾”保留为活动选项卡,而其他选项卡为橙色,这就是我所拥有的:
<div id="main-online-user">
<a href="javascript:void(0)" onclick="changesrc('main-online-frame','http://www.marandy.com/one2oneob/login-guest.php')"><img alt="One 2 One Guest" id="img-onlinebooking-guest" class="left" src="images/bookguest-a.png" /></a>
<a href="javascript:void(0)" onclick="changesrc('main-online-frame','http://www.marandy.com/one2oneob/login.php')"><img alt="One 2 One Account" id="img-onlinebooking-acc" class="left" src="images/bookaccount.png" /></a>
<a href="javascript:void(0)" onclick="changesrc('main-online-frame','http://www.marandy.com/one2oneob/login-guest.php')"><img alt="One 2 One Cash" id="img-onlinebooking-cash" class="left" src="images/bookcash.png" /></a>
</div>
对于悬停事件,我现在这样做:-
$("#img-onlinebooking-guest").hover(function() {
$(this).attr("src", "images/bookguest-h.png");
});
$("#img-onlinebooking-guest").mouseleave(function() {
$(this).attr("src", "images/bookguest.png");
});
问题是(假设访客处于活动状态 - 白色),并且我将鼠标悬停在它上面,当我离开该元素时,当它仍然是活动选项卡时,它会将图像更改回橙色(默认)。
我想要做的是: -
如果图像是一个活动元素,那么当您将鼠标悬停在它上面时,什么也不会发生。(这可能是更好的选择)
或者,如果活动元素悬停,则在 mouseout 时,它会恢复为 mouseenter 事件之前的颜色。
我不确定我该怎么做,所以我将不胜感激!
(我知道我可以使用 jQuery 选项卡,但客户想要这些图像,所以我别无选择)
编辑::
我已将“活动”类添加到#img-onlinebooking-guest 并将 jQuery 更改为:-
$("#img-onlinebooking-guest").click(function() {
$(this).addClass('active');
$('#img-onlinebooking-cash, #img-onlinebooking-acc').removeClass('active');
$(this).attr("src", "images/bookguest-a.png");
$('#img-onlinebooking-acc').attr("src", "images/bookaccount.png");
$('#img-onlinebooking-cash').attr("src", "images/bookcash.png");
});
$("#img-onlinebooking-acc").click(function() {
$(this).addClass('active');
$('#img-onlinebooking-guest, #img-onlinebooking-cash').removeClass('active');
$(this).attr("src", "images/bookaccount-a.png");
$('#img-onlinebooking-guest').attr("src", "images/bookguest.png");
$('#img-onlinebooking-cash').attr("src", "images/bookcash.png");
});
$("#img-onlinebooking-cash").click(function() {
$(this).addClass('active');
$('#img-onlinebooking-guest, #img-onlinebooking-acc').removeClass('active');
$(this).attr("src", "images/bookcash-a.png");
$('#img-onlinebooking-guest').attr("src", "images/bookguest.png");
$('#img-onlinebooking-acc').attr("src", "images/bookaccount.png");
});
$('#img-onlinebooking-guest:not(.active)').hover(
function () {
$(this).attr("src", "images/bookguest-h.png");
},
function () {
$(this).attr("src", "images/bookguest.png");
});
$('#img-onlinebooking-acc:not(.active)').hover(
function () {
$(this).attr("src", "images/bookaccount-h.png");
},
function () {
$(this).attr("src", "images/bookaccount.png");
});
$('#img-onlinebooking-cash:not(.active)').hover(
function () {
$(this).attr("src", "images/bookcash-h.png");
},
function () {
$(this).attr("src", "images/bookcash.png");
});
它看起来很乱,但无论如何,它适用于“访客”选项卡,我在 HTML 中添加了“活动”类,但不适用于其他选项卡。如果我单击“现金”,它会使图像处于活动状态(白色),但在鼠标移出时,当它应该保持白色时,它仍然会将颜色更改回橙色(默认),因为我已在单击时将“活动”类添加到此元素。
有任何想法吗?
你可以在这里看到这个;关联