2011-01-30 3 views
1

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

obj = window.setInterval() 

я использую, чтобы изменить изображения, так что я могу получить доступ к этим функциям снаружи, как:

slideshow = $('#slideshowstrip').slideshow(); 
slideshow.start(); 
slideshow.stop(); 
+3

Является ли это вопрос? С чем вы столкнулись? –

+0

Я хочу иметь встроенные функции в моем плагине, для начала и остановки, и я не знаю, как объявить эти функции –

ответ

5

Вы может рассмотреть возможность написания плагина как виджета jQuery UI, используя the widget factory.

С виджета, вы можете легко добавить несколько функций:

$.widget("ui.slideshow", { 
    options: { 
     timer: false, 
     interval: 1000 
    }, 
    _init: function(){ 
     this.start(); 
    }, 
    start: function(){ 
     this.options.timer = setInterval(function(){}, this.options.interval); 
    }, 
    stop: function(){ 
     if (this.options.timer) { 
      clearInterval(this.options.timer); 
      this.options.timer = false; 
     } 
    } 
}); 

Вы можете назвать эти функции следующим образом: $("#pictures").slideshow("stop");

+0

спасибо, таким образом, я должен использовать jQuery.UI правильно? –

+0

да, но если вам не нужны какие-либо другие виджеты или компоненты пользовательского интерфейса jQuery, я уверен, что вы можете просто включить фабрику виджета сама по себе, что составляет ~ 4 КБ, перед сжатием. (http://jqueryui.com/download, нажмите «Отменить выбор всех компонентов», а затем выберите «виджет» в разделе «UI Core».) – JKS

+0

спасибо, что сделал трюк, мне пришлось узнать много нового, но делается :) –

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