Я пытаюсь добавить метод в объект jQuery с тем же именем (но с другим набором параметров), что и у другого метода.
То, что у меня так далеко:
jQuery.fn.insertBefore = function(elem, duration)
{
this.css("display", "none");
this.insertBefore(elem);
this.toggle(duration);
}
Однако этот код (в частности, строка this.insertBefore(where);
) вызывает ту же самую функцию, а не функцию jQuery insertBefore()
, как требуется.Что мне нужно сделать, чтобы добавить эту функцию в объект jQuery и перегрузить (не перезаписать) существующую функцию?
РЕДАКТИРОВАТЬ: Решение
(function ($)
{
var oldInsertBefore = $.fn.insertBefore;
jQuery.fn.insertBefore = function(elem, duration)
{
if (duration === undefined)
{
oldInsertBefore.call(this, elem);
return;
}
this.css("display", "none");
this.insertBefore(elem);
this.toggle(duration);
}
})(jQuery);