我创建了两个具有相同名称但具有不同命名空间的自定义 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 http://bugs.jqueryui.com/ticket/7489通过定义具有相同名称的小部件,其设计目的是覆盖早期的定义。因为无论命名空间如何,小部件都会将其名称映射到 $.fn。
正如错误单中所建议的,您可以使用桥接函数创建到特定命名空间小部件的唯一映射,并使用唯一名称调用它。
在你的情况下,它可以是这样的:
$.widget.bridge( "finance_dialog", $.finance.dialog );
$.widget.bridge( "hr_dialog", $.hr.dialog );
// then call it with...
$( "div#something" ).hr_dialog();
我想另一种方法是首先创建唯一的小部件名称。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)