使用jQuery UI Widget Factory创建实例变量的正确方法

前端之家收集整理的这篇文章主要介绍了使用jQuery UI Widget Factory创建实例变量的正确方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用jQuery UI小部件工厂.
$.widget("myPlugin",{

    options: {
    },_create: function() {
    },instanceVar: "huzzah!"

});

在测试时,看起来instanceVar实际上是原型的一部分.所以插件的所有实例都是一样的.

我可以通过将instanceVar放入选项来解决这个问题,如下所示:

$.widget("myPlugin",{

    options: {
        instanceVar: "huzzah!"
    },});

然而,这看起来很奇怪,因为instanceVar只是插件使用的内部变量 – 而不是插件用户应该能够改变的东西.

有另一种(更好的)方法来实现这一目标吗?

谢谢你的帮助!

解决方法

您可以在实例本身上存储私有数据,例如,在_create内部,您应该可以执行此操作.实例Var =“huzzah!”
$.widget("ui.myPlugin",{

    options: {
        foo: "foo"
    },_create: function() {
        this.instanceVar = "huzzah!"
    },_setOption: function() {
        this.instanceVar = "worky!";
    },destroy: function() {
        console.log(this.instanceVar);  
    }

});

$(document).myPlugin().myPlugin("option","foo","bar").myPlugin("destroy"); // "worky"

$("body").myPlugin().myPlugin("destroy"); // "huzzah!

演示:http://jsfiddle.net/PGUqr/

猜你在找的jQuery相关文章