Плагин jQuery и ошибка привязки нескольких экземпляров - PullRequest
0 голосов
/ 15 января 2011

Я создал плагин, который рисует что-то на окне.

Так что моя проблема связана с более чем одним экземпляром этого плагина. Привязка дала мне только последний экземпляр плагина.

Примерно так:

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

Мой плагин draw имеет привязку ("mousedown"), которая рисует что-то, поэтому, когда я нажимаю на #thing2, это работает, если я нажимаю внутри #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
    };

Спасибо за помощь.

...