gpt4 book ai didi

jquery - jQuery 对象上的函数重载

转载 作者:行者123 更新时间:2023-12-01 00:00:55 24 4
gpt4 key购买 nike

我正在尝试向 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);

最佳答案

覆盖之前请备份原始函数。像这样的事情:

(function($){
var oldInsertBefore = $.fn.insertBefore;
jQuery.fn.insertBefore = function(elem, duration)
{
oldInsertBefore.apply(this, arguments);
this.css("display", "none");
this.insertBefore(elem);
this.toggle(duration);
}
})(jQuery);

关于jquery - jQuery 对象上的函数重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8646609/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com