Javascript 删除扩展函数
如何从特定目标对象中删除扩展的Javascript 删除扩展函数,javascript,jquery,html,Javascript,Jquery,Html,如何从特定目标对象中删除扩展的$.extend()函数。示例:通过使用XHR重新加载部分DOM,我能够检测对象的外观,如下所示: // Initliaize: $('#sausage').catsup(); ... // Inside fn.catsup(): if($('body').find($(this)).size() == 0) // object has gone 但是我怎样才能杀死fn.catsup()?这似乎不起作用: $(this).clearQueue(); $(t
$.extend()
函数。示例:通过使用XHR重新加载部分DOM,我能够检测对象的外观,如下所示:
// Initliaize:
$('#sausage').catsup();
...
// Inside fn.catsup():
if($('body').find($(this)).size() == 0) // object has gone
但是我怎样才能杀死fn.catsup()
?这似乎不起作用:
$(this).clearQueue();
$(this).stop();
$(this).unbind();
delete $(this);
如果我理解了这个问题,那么您希望从jQuery中删除您的函数 使用以下命令:
$.fn.catsup = null;
或根据以下建议:
除非我理解错误,否则您只希望
catsup
不再是jQuery扩展函数的一部分:
delete $.fn.catsup;
请注意,这不会影响所有jQuery DOM对象,即现有对象和以后创建的对象。您所说的“kill catsup()”是什么意思?@msec。现在我更困惑了,你想做什么?你能告诉我们上下文吗?这是一个很难理解的问题。如果你想用一种方法“销毁”由
catsup
执行的操作,你必须编写另一个函数(最好是为catsup本身添加一个方法)来完成。delete$.fn.catsup
可能更合适。。。它会使jQuery.fn
看起来好像它从来没有catsup
属性(jQuery.fn.hasOwnProperty('catsup')
如果设置为null
,则返回true,如果使用了delete
,则返回false)。因为$.fn
是jQuery.prototype
的别名,这将影响现有的jQuery对象。检查它将影响所有的jQuery对象。事实确实如此-感谢您的更正。我据此编辑了我的答案。
delete $.fn.catsup;