微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jquery-ui – JQuery UI:如何使用命名空间调用widget函数

我创建了两个具有相同名称但具有不同命名空间的自定义 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();

请注意,我在网页中包含所有三个窗口小部件.

我明白上述情况有冲突.我们如何使用它的命名空间调用一个widget函数,这样就不会有任何冲突?

解决方法

我有同样的问题,但我不认为可以使用命名空间调用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();

我想另一种方法是首先创建唯一的窗口小部件名称.

原文地址:https://www.jb51.cc/jquery/179874.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐