Я работаю над плагином jQuery.По сути, мне нужно вызвать частную функцию в моем плагине с помощью setInterval.Похоже, есть много разных способов создания плагина jQuery.Я использую следующий метод, потому что я нахожу его понятным, но если есть работающее решение, которое требует, чтобы я изменил способ, которым я структурирую свой плагин, я открыт ...
Я упростил свой плагин, чтобы сохранить толькопроблемная часть:
(function($){
$.fn.something = function(options)
{
var opts = $.extend({}, $.fn.something.defaults, options);
return this.each(function()
{
var $this = $(this);
$this.click(function(){
startSomething($this);
});
});
// Private function
function startSomething($this)
{
// $this is defined
setInterval(doSomething, 1000);
};
// Another private function
function doSomething($this)
{
// $this is undefined
};
};
$.fn.something.defaults = {
my_option: 'value'
};
})(jQuery);
Проблема в том, что я хочу вызывать doSomething () каждую секунду.Но мне нужно сохранить ссылку на мой элемент (в переменной $ this).Если я использую setInterval (doSomething), функция вызывается нормально, но у меня нет переменной $ this в качестве параметра.Если я использую setInterval ("doSomething ($ this)"), функция не определена, потому что она пытается найти ее в глобальном контексте.
Так, каково было бы здесь решение для вызова моей частной функции и возможностипередать аргумент?
Спасибо