jQuery插件和多个实例绑定错误

时间:2011-01-15 14:16:43

标签: jquery html events plugins bind

我创建了一个在窗口上绘制东西的插件。

所以我的问题是与这个插件的多个实例绑定。绑定只让我获得了最新的插件实例。

这样的事情:

$("#someThing").draw({"option": "x"});
$("#someThing2").draw({"option": "y"});

我的插件绘制有一个绑定(“mousedown”),绘制一些东西,所以当我点击#something2它有效时,如果我点击#something,我的插件从#someThing2获取属性。

我正在用这种方式开始:

    var methods = {

        init: function(options) {
            return this.each(function() {
                $(this).bind("mousedown", function() {
                    console.log($.fn.draw.defaults); // IT GETS ME ALWAY THE LATEST PLUGIN INSTANCE.
                });
            });
        }
    }
    // Initializing plugin
    $.fn.draw = function(method) {
        if(methods[method]) {
            return methods[method].apply( this, Array.prototype.slice.call( arguments, 1 ));
        } else if(typeof method === 'object' || !method) {
            return methods.init.apply(this, arguments);
        } else {
            $.error('Method ' +  method + ' does not exist on jQuery.canvas');
            return false;
        }
    };

    // Default options
    $.fn.draw.defaults = {
        width: '800',
        height: '600',

        // Mouse positions
        mouseX: null,
        mouseY: null,
        mouseXPrev: null,
        mouseYPrev: null,

        mousePressed: false,

        mode: null,
        modes: null
    };

感谢您的帮助。

0 个答案:

没有答案