Javascript 销毁()还是销毁()?
对于jQueryUI小部件中要实现的Javascript 销毁()还是销毁()?,javascript,jquery,jquery-ui,jquery-ui-widget-factory,Javascript,Jquery,Jquery Ui,Jquery Ui Widget Factory,对于jQueryUI小部件中要实现的\u destroy或destroy方法,我有点困惑 在本文中,它表示实现destroy(),但在本文中,它表示实现\u destroy() 两个引用都说,这些方法应该将元素返回到它的前小部件状态。我理解这一部分,但为什么widget工厂中有两个版本的方法?从jQuery UI而不是MSDN上阅读文档 })) 只是为了澄清(并基于): 在jQuery UI 1.8中,您的小部件应该如下所示: $.widget( "demo.widget", { de
\u destroy
或destroy
方法,我有点困惑
在本文中,它表示实现destroy()
,但在本文中,它表示实现\u destroy()
两个引用都说,这些方法应该将元素返回到它的前小部件状态。我理解这一部分,但为什么widget工厂中有两个版本的方法?从jQuery UI而不是MSDN上阅读文档 })) 只是为了澄清(并基于): 在jQuery UI 1.8中,您的小部件应该如下所示:
$.widget( "demo.widget", {
destroy: function() {
// Invoke the base destroy method
$.Widget.prototype.destroy.call( this );
// Perform widget-specific cleanup
...
}
});
在jQuery UI 1.9中,如下所示:
$.widget( "demo.widget", {
_destroy: function() {
// Perform widget-specific cleanup
...
}
});
也就是说,在1.9中,您不应该定义(public)
destroy
方法;定义\u销毁;其中不需要调用基本调用析构函数。为什么不查看jQuery UI小部件系统的jQuery UI文档,而不是microsoft MSDN或教程加参考?既有销毁方法,也有_销毁方法:每种方法都有不同的用途。一个是公共的,另一个是私人的。当你调用public时,它最终会委托给private方法。@KevinB它不会用这些方法的简单的两句话文档来回答上述问题。我想它会的。您应该只实现您的特定小部件需要的那些。如果您不需要清理常见事件等,只需要清理特定于小部件的内容,那么只需实现私有的。@Kevin,实际上,jQuery UI小部件方法中的下划线前缀表示受保护的,而不是私有的。但是是的,publicdestroy()
方法将委托给\u destroy()
。小部件现在应该覆盖受保护的方法,而不是公共方法。你能解释一下这是什么意思吗,因为我使用的是jQueryUI1.10。我应该而不是调用它吗?\u super()在destroy()末尾?@Mathew,仔细检查后,这取决于。您的小部件是否直接继承自ui.widget
?它的意思是它将是\u destroy:function(){/*您的代码在这里*/}
好的,谢谢。看,我不清楚。我认为UI文档需要更新,以便更好地反映像我这样的新用户的情况。你可以自己查看jQuery小部件的源代码,看看它们做了什么。请注意,如果你是,看起来你确实需要调用this.\u super()
在你的小部件中\u destroy--如果不是,析构函数不会为正在扩展的小部件运行。
$.widget( "demo.widget", {
_destroy: function() {
// Perform widget-specific cleanup
...
}
});