2012-10-29 44 views
0

我正在使用jQuery hoverIntent插件在另一個div懸停時淡入div。有4個元素共享一個類名,我只想淡入我徘徊的元素的子元素,而不是每個分享類的子元素的div。現在的問題是,如果我在一次潛水中徘徊,它會在所有4個孩子中褪色。在我的代碼中哪裏有一點代碼我錯了?當多次使用該類時,只有一個div類的jQuery hoverIntent

這裏的HTML:

<div id="resources" class="faded"> 

<div class="resourcesHover"></div> 

</div> 

<div id="forBuilders" class="faded"> 

<div class="buildersHover"></div> 

</div> 

<div id="fam" class="faded"> 

<div class="famHover"></div> 

</div> 

<div id="homePlans" class="faded"> 

<div class="plansHover"></div> 

</div> 

這裏是jQuery的

$(document).ready(function(){ 

$(".faded").hoverIntent({ 
    over: fadeDivIn, 
    timeout: 300, 
    out:  fadeDivOut 
}); 

function fadeDivIn() { 
    var $kids = $('.faded').children(); 
    $($kids, this).fadeIn('slow'); 
} 

function fadeDivOut() { 
    var $kids = $('.faded').children(); 
    $($kids, this).fadeOut('slow'); 
} 

}); 

萬一有人有類似的問題,我想出瞭解決方案,並張貼在下面。

回答

0

的所有元素只是想通了。我將this,添加到將子項設置爲變量的行中,並將其從.fadeIn和.fadeOut行中刪除。

這裏是新的jQuery:

$(document).ready(function(){ 

$(".faded").hoverIntent({ 
    over: fadeDivIn, 
    timeout: 300, 
    out:  fadeDivOut 
}); 

function fadeDivIn() { 
    var $kids = $(this,'.faded').children(); 
    $($kids).fadeIn('slow'); 
} 

function fadeDivOut() { 
    var $kids = $(this,'.faded').children(); 
    $($kids).fadeOut('slow'); 
} 

}); 
0

更改fadeDivInfadeDivOut功能如下:

function fadeDivIn() { 
    var $kids = $(this).children(); 
    $($kids).fadeIn('slow'); 
} 

function fadeDivOut() { 
    var $kids = $(this).children(); 
    $($kids).fadeOut('slow'); 
} 
+0

不幸的是不起作用。我以前曾經這樣做過,但它什麼也沒做。我試了一遍,只是爲了確保。感謝你的回答。 – AndyWarren

0

在您的淡入淡出功能,您需要選擇this而不是類faded

$(document).ready(function(){ 

$(".faded").on('mouseover', function() { 
    fadeDivIn(this); 
}); 

$(".faded").on('mouseout', function() { 
    fadeDivOut(this); 
}); 

function fadeDivIn(hovered_over) { 
    var $kids = $(hovered_over).children(); 
    $($kids).fadeIn('slow'); 
} 

function fadeDivOut(hovered_over) { 
    var $kids = $(hovered_over).children(); 
    $($kids).fadeOut('slow'); 
} 

}); 
+0

當您執行'over:fadeDivIn(this)'時,它實際上會調用該函數並將其返回值存儲在名爲'over'的屬性中,而不是設置回調處理程序。 – techfoobar

+0

感謝您的回覆,但這也不起作用。只要頁面加載所有div,淡入淡出。我直接從這裏複製你的代碼來驗證我沒有輸入錯誤。 – AndyWarren

+0

試試我的更新回答 – jacktheripper

相關問題