2013-01-23 23 views
6

jQuery 1.6+ içinde step işlevini nasıl genişletebilirim?jQuery'nin adım adım işlevini genişletme

Her animasyonlu adımda custom-event'u tetiklemek için özel bir olay yaptım. Ancak jQuery'nin animasyon yöntemi değiştirildiğinden veya adım işlevinin daha uzun bir süre uzatılmayacağı ($.fx.step boş bir object ile sonuçlandığı için) bunu kendi nesnelerinizle genişletmek imkansızdır.

(function($){ 
    var oldStep = $.fx.step._default; 
    $.event.special.animating = { }; 
    $.fx.step._default = function(fx) { 
     $(fx.elem).trigger('animating', fx); 
     oldStep.apply(this, arguments); 
    }; 
}(jQuery)); 

$('#foo').animate({width: 200}); 
$('#foo').bind('animating', function(e, fx){ 
    console.log(fx); 
}); 

Daha yeni jQuery sürümleriyle çalışmak için nasıl bir fikir edinilir?

+0

İşlev şimdi "$ .Tween.propHooks._default.set" adresinde görünüyor. Ama ne bu ne de eskisi belgelenmemiş, bu yüzden aynı davranacak mı emin değilim. – pimvdb

+0

@pimvdb [Şimdilik farkettim] (http://stackoverflow.com/questions/14468421/has-jquery-an-animating-event), bunun eski işlev için * değiştirici olduğunu bilmiyordu. Teşekkürler, şu ana kadar gayet iyi çalışıyor ... (jQuery'de [güncellemeler blogu] (http://jquery.org/updates/page/9/) zaten yorumlanacak şekilde işaretlenmiştir). – yckart

cevap

İlgili konular