Sokszor kényelmetlen a setTimeout-nak küldözgetni paramétereket closure használatával, pláne ha már objektumokkal dolgozol. Ezen segít Douglas Crockford‘s later függvénye, rettentően hasznos.
A jQuery-re áttérés után egyik első dolgom volt ennek beemelése plugin formájában, a kód lejjebb, előtte egy példa:
$('div#Message').show('slow').later(3000,'hide','slow');
Használata:
$.later(integer time, string function, string argument);
Az időt miliszekundumban, minden mást szövegláncként adunk meg neki.
A plugin:
$.fn.extend({ later: function(_s, _m){ var that = this, args = Array.prototype.slice.apply(arguments, [2]); if (typeof _m === 'string') _m = that[_m]; time = setTimeout(function(){ _m.apply(that, args); }, _s); return this; } });
Jóétvágyat hozzá.
Tök jó, hogy elkezdtél blogolni. :) És szép is lett a blog. Egy apró észrevételem lenne a fentivel kapcsolatban, érdemes az alábbi formában kiegészíteni a jQueryt, hogy megmaradjon az a fontos tulajdonsága, hogy simán lehet más JS librarykkel együtt használni:
# (
# function ($) {
# $.delegate = function (scope, func) {
# var _scope = scope;
#
# return function () {
# func.apply(_scope, arguments);
# }
# }
# }
# )(jQuery);
Üdv,
Felhő