2011-11-29 20 views
1

我想將高亮和刪除效果應用於同一個dom。一個接一個地。不幸的是,高亮效果是不可見的,因爲刪除後立即觸發。jQuery特效組合

任何想法延遲刪除操作?

$("#<%= dom_id(@stock) %>").effect("highlight", {}, 4000) 
$("#<%= dom_id(@stock) %>").remove() 

回答

2

問題是,.remove()不能拖延。這是立即觸發的功能之一,意味着.delay()什麼也不做。

然而,JavaScript的setTimeout()功能:

$('#g').click(function(){ 
$("#hi").hide("highlight", {}, 4000) 
setTimeout('$("#<%= dom_id(@stock) %>").remove();', 4100) 
}); 

這裏是一個example of this on jsFiddle

+0

謝謝。我刪除了刪除操作,並且在你的語法中工作得很好。這就是我所需要的。謝謝 – Gaelle

+0

您的歡迎。很高興我能幫上忙。 – Shawn31313

1

effect一個jQuery插件?我無法在jQuery站點上找到該函數的任何文檔。

使用jQuery Animate是因爲您在動畫完成後得到回調。

$("#<%= dom_id(@stock) %>").animate({ 
    opacity: 0.25, 
    }, 4000, function() { 
    // Animation complete. 
    $("#<%= dom_id(@stock) %>").remove(); 
    }); 

更新

像Shawn31313說

effect(..) 

是jQuery用戶界面的一部分,此功能還支持 「回調」 的作用完成後。 jQuery UI Effect

希望這有助於

+2

影響帶有jQuery UI的,我相信。 – Shawn31313

+0

謝謝!我更新了我的答案。 – dknaack

+0

是的,它帶有jQuery UI。你的解決方案也可以。 – Gaelle

1

.effect()有回調參數,這將影響完成後調用。見effect demo

$("#<%= dom_id(@stock) %>").effect("highlight", {}, 4000, function() { 
    $("#<%= dom_id(@stock) %>").remove(); 
});