我创建了两个具有相同名称但具有不同命名空间的自定义
JQuery UI小部件,如下所示:
第一个小部件:
第一个小部件:
$.widget('finance.dialog',{....}); // this was created in the file jquery.finance.dialog.js
第二个小部件:
$.widget('hr.dialog',{.....}); // this was created in the file jquery.hr.dialog.js
除了这两个,JQuery UI在命名空间ui中有自己的对话小部件(ui.dialog).
我的问题是:
当我在下面给出的网页中调用以下内容时,将调用哪个对话窗口小部件?
$('div#something').dialog();
请注意,我在网页中包含所有三个窗口小部件.
解决方法
我有同样的问题,但我不认为可以使用命名空间调用jquery ui小部件.
如果我从这个理解正确:http://bugs.jqueryui.com/ticket/7489
通过定义具有相同名称的小部件,设计可以覆盖早期的定义.因为无论命名空间如何,这些小部件的名称都映射到$.fn.
根据bug门票中的建议,您可以使用桥接功能创建一个独特的映射到特定的命名空间小部件,并使用唯一的名称来调用它.
在你的情况下,可以这样:
$.widget.bridge( "finance_dialog",$.finance.dialog ); $.widget.bridge( "hr_dialog",$.hr.dialog ); // then call it with... $( "div#something" ).hr_dialog();