0
我有2個jQuery的函數做類似的事情(一個用於鼠標懸停,另一個用鼠標點擊),它們似乎互相干擾。第一個使用懸停的jquery ui switchclass更改背景。這也會帶來一個子菜單。當你點擊子菜單中的鏈接時,它會觸發一個刪除前一個菜單的點擊功能。並使用switchclass更改該背景。問題是,只要您移動鼠標,它就會觸發鼠標並將背景更改回默認背景。兩個互相干擾的jquery函數
這是鼠標懸停。
$('.hoverbg').mouseover(
function(){
var newimg = $(this).attr('data-bgsrc');
$('#bg img[src="'+newimg+'"]').switchClass("inactive", "active", 0, "easeInOutQuad");
$('#bg img[src!="'+newimg+'"]').switchClass("active", "inactive", 0, "easeInOutQuad");
});
$('.nav').mouseout
(function(){
if ($('#sitewrapper').hasClass("c"))
{
event.stopImmediatePropagation()
}
else
{
$('#bg img[src="images/bg.jpg"]').switchClass("inactive", "active", 0, "easeInOutQuad");
$('#bg img[src!="images/bg.jpg"]').switchClass("active", "inactive", 0, "easeInOutQuad");
}
});
這裏是點擊事件。它隱藏了作爲mouseout一部分的nav類。從技術上講,我想這已經讓你的菜單鼠標,但我有它添加一個類的sitewrapper div和停止,如果類是存在的。
$('a#navclick').click(function(){
var iclick = $(this).attr('data-iclick');
var clickimg = $(this).attr('click-data-bgsrc');
if ($('#topId').hasClass('.topOn'))
{
$('#bg img[src="'+clickimg+'"]').switchClass("inactive", "active", 0, "easeInOutQuad");
$('#bg img[src!="'+clickimg+'"]').switchClass("active", "inactive", 0, "easeInOutQuad");
}
else
{
$('#sitewrapper').addClass("c");
$('img.logo').hide("drop", {direction: "down"}, 1000);
$('.nav').hide("drop", {direction: "down"}, 1000);
$('#bg img[src="'+clickimg+'"]').switchClass("inactive", "active", 0, "easeInOutQuad");
$('#bg img[src!="'+clickimg+'"]').switchClass("active", "inactive", 0, "easeInOutQuad");
$('#topId').addClass('topOn');
$('#topId').show("slide", {direction:"up"}, 1000);
}
});
我可能是錯的,包含在else部分中的click參數似乎沒有改變firefox和explorer中的圖像。任何想法爲什麼那不起作用? – dimmlight