jQuery插件-多实例化

jQuery插件-多实例化,jquery,Jquery,我在寻求帮助。我这里的代码几乎是干净的jquery样板文件: ;(函数($,窗口,文档,未定义){ var pluginName=“defaultPluginName”, 默认值={ propertyName:“值” }; 函数插件(元素、选项){ this.element=元素; this.options=$.extend({},默认值,选项); 这是默认值; 这个。_name=pluginName; this.init(); } Plugin.prototype={ someVal:Mat

我在寻求帮助。我这里的代码几乎是干净的jquery样板文件:

;(函数($,窗口,文档,未定义){
var pluginName=“defaultPluginName”,
默认值={
propertyName:“值”
};
函数插件(元素、选项){
this.element=元素;
this.options=$.extend({},默认值,选项);
这是默认值;
这个。_name=pluginName;
this.init();
}
Plugin.prototype={
someVal:Math.round(Math.random()*9999999),
init:function(){
self=这个;
aEl=$('

但我就是做不到

当你点击链接的JSFIDLE上的el1链接时,我需要显示一个随机数和插件第一个实例的属性。当你点击链接的jsfiddle上的el2链接时,我需要显示插件第二个实例的第二个随机数和属性。目前这两个链接都是相同的

我的问题是如何为我的插件的每个实例创建自己的选项?那么,创建自己的每个实例变量的正确方法是什么?谢谢

self=this;

aEl=$(“使其成为局部变量。

Bergi的答案是正确的,您应该将
self
定义为局部变量。此外,我想补充一点,您应该使
someVal
函数在每次单击链接时都具有随机数,否则它们在初始时间将是相同的数。因此更新的代码应该是:

Plugin.prototype = {

    someVal: function () { 
        return Math.round(Math.random() * 99999999) 
    },

    init: function() {
        var self = this;

        aEl = $('<a/>', {  
            href: '#',
            text: self.options.propertyName,
            click: function (e) {
                e.preventDefault();
                self._clicked();
            }
        });

        $(".el1").before(aEl);    
        $(".el1").before("<br/><br/>");    

    },

    _clicked: function(el, options) {
        alert("Random value of el instance:" + this.someVal());
        alert("Property name:" + this.options.propertyName);
    }
};
Plugin.prototype={
someVal:function(){
返回Math.round(Math.random()*9999999)
},
init:function(){
var self=这个;

aEl=$('

嗯,我没有看到任何链接,你能再检查一下你的小提琴吗?啊,对不起,谢谢你的留言。更新了,现在应该可以了:)
self = this;
aEl = $('<a/>', {  
    href: '#',
    text: this.options.propertyName,
    click: function(e){self._clicked();}
});
Plugin.prototype = {

    someVal: function () { 
        return Math.round(Math.random() * 99999999) 
    },

    init: function() {
        var self = this;

        aEl = $('<a/>', {  
            href: '#',
            text: self.options.propertyName,
            click: function (e) {
                e.preventDefault();
                self._clicked();
            }
        });

        $(".el1").before(aEl);    
        $(".el1").before("<br/><br/>");    

    },

    _clicked: function(el, options) {
        alert("Random value of el instance:" + this.someVal());
        alert("Property name:" + this.options.propertyName);
    }
};