从插件外部设置/引用插件变量
Set/reference a plugin variable from outside the plugin
我有一个插件,使用变量如下:
(function( $, window) {
$.widget("mobile.multiview",$.mobile.widget, {
// variables
vars: {
$ignoreMyOwnNextHashChange : false
}
});
...
}) (jQuery,this);
我想设置$ignoreMyOwnNextHashChange从外面=另一个插件坐在这个之后。这可能吗?这样做是行不通的:
$.mobile.multiview.vars.$ignoreMyOwnNextHashChange = true;
这里有两个很好的选择:
-
在小部件类中使用默认的
options
对象。所有小部件都有一个options
属性,并围绕它构建了许多其他功能。使用options
将允许您为每个选项属性编写getter和setter:$("#selector").multiview("option", "$ignoreMyOwnNextHashChange"); // getter $("#selector").multiview("option", "$ignoreMyOwnNextHashChange", true); // setter
如果你走这条路,你实际上会在小部件中减少代码:
(function($, window) { $.widget("mobile.multiview", { // variables options: { $ignoreMyOwnNextHashChange: false } }); })(jQuery, this);
如果您的属性可以在初始化时设置,然后在稍后检索或设置,这可能是您的最佳选择。所有的jQueryUI小部件都遵循这个模式。
-
第二个选项是创建一个可以调用的特定于属性的方法。如果您在初始化时内部设置一个变量,然后允许用户获取或设置它,这是有用的:
(function($, window) { $.widget("mobile.multiview", { vars: { $ignoreMyOwnNextHashChange: false }, ignoreMyOwnNextHashChange: function (newValue) { if (arguments.length) { this.vars.$ignoreMyOwnNextHashChange = newValue; } return this.vars.$ignoreMyOwnNextHashChange; } }); })(jQuery, this);
现在,实例化小部件之后,您可以像这样调用该函数:
$("#selector").multiview("ignoreMyOwnNextHashChange"); // getter $("#selector").multiview("ignoreMyOwnNextHashChange", true); // setter.
关于编写针对小部件工厂的插件的技巧的一些很好的资源是jQueryUI的小部件工厂开发指南和jQueryUI源代码本身。
相关文章:
- 有没有一种方法可以重新绑定jQuery插件中引用的事件处理程序
- Firefox插件引用错误
- 可以't从客户端应用程序引用插件中定义的静态方法
- 在 CKEditor 中加载块引用插件
- 如何动态引用 jQuery 插件实例
- 如何引用插件的$(this)而不是每个函数的$(this)?jQuery.
- 在插件后用 $(this) 引用 DOM
- 调用插件时如何引用 $(this)
- jQuery 插件,保留对原始元素的引用
- jquery插件,引用DOM中的视频元素
- 从插件外部设置/引用插件变量
- 如何使用Grails Asset插件引用静态HTML资源
- Cordova插件引用错误(Dropbox Sync)
- 如何在不同的grails应用程序中从一个grails插件引用javascript文件?
- 将jQuery引用传递给回调函数或插件的标准方式
- 如何使用jQuery验证插件获取提交按钮的引用
- 在jQuery插件中引用时使用哪个-$(obj)vs obj
- 如何使用插件引用在外部调用jQuery小部件公共方法
- 如何在动态创建时将类名(引用插件)添加到复选框中
- 从插件到主题文件夹:引用不按预期工作