JQuery обратного вызова / проблема закрытия - PullRequest
1 голос
/ 02 сентября 2011

Я написал такой плагин jquery

(function($){

$.inspect = function(prodid, flag, callback){
    //global plugin vars
    var inspect, info, tabs, generalInfo;

    var init = function(){
        //build basic layout
        //use of prodid and flag is ok
    }

    var fetch = function(){
        //fetch data
        //use of prodid and flag is ok
    }

    var render = function(){
        //render data
        //use of prodid and flag is ok
    }

    var empty = function(){
        //reset to basic layout
        //use of prodid and flag is ok
    }

    var listeners = function(){
        //bind eventhandlers
        //use of prodid or flag FAILS here
        inspect.dialog('option','close', /* how to put callback here? */ callback );


    }

    //existing instance?
    inspect = $(".inspectHolder");
    if(inspect.length>0){//existing instance
        inspect = $(".inspectHolder");
        info = $(".inspectInfo", inspect);
        tabs = $(".inspectTabs", inspect);
        empty();
    }
    else{//new instance
        init();
    }

}

})

первый вызов плагина

prodid = 100
$.inspect( prodid, 0, function(){
    console.log(prodid);
});

второй плагин вызова

prodid = 200
$.inspect( prodid, 0 , function(){
    console.log(prodid)
});

Теперь моя проблема заключается в следующем:

привязка моих обработчиков событий заставляет каждое событие использовать первый prodid (= 100), а не тот, который я передаю в качестве параметра для вызова $ .inspect () ... Все остальное работает просто отлично

я знаю, что мог бы просто создать новый экземпляр для каждого вызова $ .inspect (), но это было бы нечисто или мудро (управление памятью?) (Насколько я знаю, все еще довольно плохо знакомый с программированием)

Я пытался использовать callback.call (this, prodid) или что-то похожее, но это больше похоже на попытку и посмотреть, что произойдет, тогда действительно понимая, для чего это ... некоторые приличные документы по этому вопросу были бы очень желательны, так как я найти документы по jquery на это недостаточно (или я просто что-то просматриваю)

Любая помощь будет высоко ценится!

Thx body

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...