Мой плагин занимает некоторое время, делая что-то. Поэтому я хочу послушать, когда плагин завершит свою задачу извне, чтобы я мог что-то отобразить.
Я хочу что-то подобное -
$('li').filterGroup ({
onInit: function(){
alert("plugin has started working");
},
onComplete: function(){
alert("plugin has finished");
}
})
Я пытался написать это внутри кода моего плагина -
(function($) {
// jQuery plugin definition
$.fn.filterGroup = function(config)
{
var settings = {
//some settings defined here
};
var thisDropdown = this; //master copy
if(config)
{
$.extend(settings, config);
}
/*Tried following changes to make events work*/
/*Tried following changes to make events work*/
/*Tried following changes to make events work*/
//I tried the following – assuming I will be able to listen to an onComplete event from outside
// reference the function from the options passed
var theFunc = config.onInit;
var anotherFunc = config.onComplete;
theFunc.call(); //does not work - gives error "theFunc is not a function"
this.each(function()
{
//here my plugin logic is done
anotherFunc.call(); //this is also not working - "anotherFunc is not a function"
});
// allow jQuery chaining
return thisDropdown;
};
Но это не работает, я получаю сообщение об ошибке -
theFunc is not a function
Примечание - Я проверил документы для разработки PLugins и, в частности, раздел событий http://docs.jquery.com/Plugins/Authoring#Events,, но похоже, что он предназначен для определения открытых функций, которые можно вызывать извне, а не того, что я ищу за. Где оригинальный документ JQuery для этого? Я думаю, что мне просто нужно правильно следовать документам.
Также проверил следующие вопросы, но не получил -
Привязать событие к пользовательской функции плагина в jQuery
Пользовательское событие для пользовательского плагина JQuery
Обработка событий в плагине jQuery
Обновление
Хорошо, получил мою ошибку, в моем действительном коде у меня были theFunc.call()
и anotherFunc.call()
, но в вызывающей части я только обработал onComplete
. Итак, мне нужно явно написать часть onInit () в моем вызове плагина -
Эта часть -
onInit: function(){
alert("plugin has started working");
}
Я имею в виду, если события определены внутри плагина, что если я не хочу обрабатывать внешний код?