2012-06-14 84 views
0

我使用Quicksand作爲可排序的項目組合頁面,需要使用nth-child去除每個第三個元素的左側填充,我還必須添加一個mouseover和mouseout效果。 這是我目前:使用流沙時的多次回調

$holder.quicksand($filteredData, { 
    duration: 200, 
    easing: 'easeInOutQuad' 
}, function() { 
    $("#center_content .portfolio .tiles_holder .four img").mouseover(function() { 
     $(this).fadeTo("fast", 0.3, function() { 
      $('ul.tiles_holder li:nth-child(3n+1)').css("marginLeft", "0"); 
     }); 
    }).mouseout(function() { 
     $(this).fadeTo("fast", 1, function() { 
      $('ul.tiles_holder li:nth-child(3n+1)').css("marginLeft", "0"); 
     }); 
    }); 
}); 

但會發生什麼是保證金不會被刪除,直到鼠標懸停/輸出事件發生。我如何改進代碼?

+0

你只是想刪除留下的每一個邊緣第三個元素獨立於mouseover/out?你想在懸停/關閉時做什麼? – lucuma

+0

是的,我需要刪除每個第三個元素的邊距,以確保佈局正確,鼠標懸停/放大功能在圖像懸停時顯示有關項目的額外信息(信息位於圖像的背景中,因此減少不透明度會使其可見) – Codename

回答

0

既然你沒有張貼任何HTML,這是很難說清楚,但好像你需要更改流沙回調到這一點:

$holder.quicksand($filteredData, { 
    duration: 200, 
    easing: 'easeInOutQuad' 
}, function() { 

    $('ul.tiles_holder li:nth-child(3n+1)').css("marginLeft", "0"); 

    $("#center_content .portfolio .tiles_holder .four img").mouseover(function() { 
     $(this).fadeTo("fast", 0.3); 
    }).mouseout(function() { 
     $(this).fadeTo("fast", 1); 
    }); 
}); 
+0

那個工作... 我也試過不成功: $("#center_content .portfolio .tiles_holder .four img").mouseover(function() { $(this).fadeTo("fast", 0.3); }).mouseout(function() { $(this).fadeTo("fast", 1); }, function(){//n-th child code });); 非常感謝! – Codename

+0

刪除剩餘邊距的部分需要在鼠標懸停/跳出事件之外,因爲它與它們無關。這些事件只是淡入淡出與您的餘裕無關的圖像。 – lucuma