Я написал такой плагин 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