2013-12-07 3 views
2

Я ищу лучший способ доступа/управления данными внутри функции обратного вызова плагина. Я хочу сделать то же, что и пользовательский интерфейс jQuery.Параметры функции обратного вызова jQuery плагина

пример пользовательского интерфейса (как я хочу, чтобы это сделать) http://api.jqueryui.com/sortable/

$(".selector").sortable({ 
    activate: function(event, ui) { 
    alert(ui.item) 
    alert(ui.position) 
    alert(ui.offset) 
    } 
}); 

мой плагин пример (как я теперь есть):

$(".selector").myplugin({ 
    activate: function(event, item, postion, offset) {//to much parameters 
    alert(item) 
    alert(position) 
    alert(offset) 
    } 
}); 

//inside the plugin 
var varItem = ''; 
var varPosition = ''; 
var varOffset = ''; 

if(typeof self.o.activate == 'function'){ 
    self.o.activate.call(this, varItem, varPosition, varOffset); 
} 
+0

Не зная, откуда пользователь получит свойства item/pos/offset, трудно дать солидный ответ. Не могли бы вы сделать это с помощью объекта? Тогда пользователь может передать элемент или объявленный объект? – brandonscript

ответ

4

Это должно сделать трюк

$(".selector").myplugin({ 
    activate: function(event, object) {//to much parameters 
    alert(object.item) 
    alert(object.position) 
    alert(object.offset) 
    } 
}); 

//inside the plugin 
var varItem = ''; 
var varPosition = ''; 
var varOffset = ''; 

if(typeof self.o.activate == 'function'){ 
    self.o.activate.call(this, {item: varItem, position: varPosition, offset: varOffset}); 
} 
+0

да это, кажется, делает трюк, большое спасибо! – user759235

Смежные вопросы