Я думал, что исправил это в пятницу с помощью коррекции типа, но я этого не сделал: (
Я бился головой, пытаясь найти решение этой проблемы (если есть такая, которая должна бытьВозможно, я не ищу нужную вещь, но я просто не могу найти решение этой проблемы ...
Настройка:
$.myPlugin = function(element, options){
this.myElement = $(element);
this.myElement.data('rotator', '');
this.myElement.data('settings', $.extend({}, $.myPlugin.defaultOptions, options));
this.mainFunction(this.myElement);
};
$.myPlugin.defaultOptions = { // yadda yadda };
$.myPlugin.prototype = {
mainFunction : function(myself){
// establish initial parameters
var TEST = Math.rand();
// do a bunch of stuff
$(myButton).live('click', function(){
alert(TEST) //<---FOR TESTING PURPOSES
// do other things
myself.data('rotator', setTimeout(function(){
// click button after x period
myButton.click();
}, x ));
});
},
destroy : function(){
myself = $(this);
myself.myElement.removeData('settings');
clearTimeout(myself.data('rotator'));
}
};
$.fn.myPlugin = function(options) {
// parse options
this.each(function(){
var instance = $(this).data('myPlugin');
// blah blah blah ... on create
$(this).data('myPlugin', new $.myPlugin(this, args));
// blah blah blah ... on destroy
instance['destroy'].apply(this);
$(this).data('ddGallery', null);
};
return this;
};
Желаемая функция:
В моей логике я хочу создать объект для элемента. Затем плагин сохраняет содержимое элемента в переменной и помещает новый контент вЭто есть автоматически синхронизируемое событие, которое вызывается при щелчке с помощью прослушивателя щелчков .live (); событие щелчка сбрасывает таймер, приводящий к циклу (в отличие от использования setInterval). При уничтожении я заменяю сохраненный оригиналhtml-содержимое и хотят убить объект. Пока что все это работает. Я хочу затем иметь возможность воссоздать объект на элементе (возможно, передавая другие настройки).
Здесь все идет не так:
Когда я воссоздаю объект на том же элементе после уничтожения, оригинальный таймер продолжает работать. Я не могу избавиться от вонючего таймера, и я собираюсь вырвать мои волосы!
Чтобы проверить, я устанавливаю случайное число при инициализации и предупреждаю это числопо щелчку.Первоначально я мог бы получить предупреждение, например, «0,1234».Затем я могу уничтожить объект (я просто использую слушатель на кнопку формы для создания и уничтожения).Элемент вернется в свое исходное состояние и счастливо посидит бесконечно.Однако, как только я снова запускаю плагин для элемента, сразу же без задержки появляется исходное предупреждение «0.12345» (и все анимации запускаются).Затем следует другое новое всплывающее окно, например, «0,5678».Теперь оба таймера продолжают стрелять по стихии, нанося ущерб.
Чего мне не хватает?