如何调用jQuery $ .widget.bridge()base $ .Widget.destroy()方法?

时间:2011-06-20 08:01:45

标签: jquery jquery-ui widget

我正在使用jQuery; $。widget.bridge();并且想要销毁小部件实例,我无法弄清楚如何调用$.widegt.destroy()方法。

// Bridge to our FileSelect plugin.
$.widget.bridge( "fileSelect", FileSelect );

// Wire up 'File' select.
$('#fileSelect').fileSelect({
        onchange: jQuery.proxy( viewModel.handleFiles, viewModel ); 
});

....
// Now destroy the fileSelect widget?

价:
http://www.erichynds.com/jquery/using-jquery-ui-widget-factory-bridge/
https://github.com/jquery/jquery-ui/blob/1.8.5/ui/jquery.ui.widget.js#L81

更新更改了标题以更好地反映意图。

3 个答案:

答案 0 :(得分:2)

更新:这个答案不正确,就我们而言(OP和我可以告诉)。我会在一段时间之后删除它,但我现在要离开它,以便其他人不会发布同样的事情。有关详细信息,请参阅注释。


jQuery UI小部件的常用方法是:

$('#fileSelect').fileSelect('destroy');

请注意,“method”名称在引号中,并作为参数传递给插件函数。

更新first link you listed上提到了这一点:

  

$.widget.bridge通过获取基础“foo”对象并为其提供公共API在工厂内部工作,以便您可以通过编写$('.foo').bar()并通过编写{来调用方法来创建实例{1}}。

(我的重点。) ......所以大概也适用于通过该桥创建的小部件。

答案 1 :(得分:0)

你试过.remove()吗?

http://api.jquery.com/remove

答案 2 :(得分:0)

您可以考虑向某个类添加桥接,然后使用addClass()将该类应用于窗口小部件,然后您可以使用removeClass()删除该类

$.widget.addClass('someclass');
$('someclass').bridge( "fileSelect", FileSelect );

然后删除,

$.widget.removeClass('someclass');