Проверьте эту ссылку для интересного шаблона для разработки плагинов. По сути, вам нужно предоставить «метод» обновления ваших часов:
(function( $ ){
function updateClock(element) {
var settings = element.data("settings");
// Your update logic goes here
}
$.fn.clock = function( options ) {
if ( options === 'update' )
return updateClock(this);
// Other methods, if any
else if ( typeof options !== 'object' )
throw 'Unknown method';
// ESTABLISH DEFAULTS
var settings = $.extend( {
'target' : '07/21/2013 09:00:00', // mm/dd/yyyy hh:mm:ss
}, options);
// Save your settings for later access
this.data("settings",settings);
Затем, каждый раз, когда вы хотите обновить элемент, вы называете его так:
$(yourselector).clock("update");
(извне; если updateClock
доступен из вашей области видимости, вы можете вызвать его напрямую для эффективности. Просто не забудьте обернуть элемент в $()
при необходимости)
Наконец, вы должны настроить setTimeout
или setInterval
. Я бы предпочел setTimeout, потому что это позволит вам остановить или перезапустить ваши часы в случае необходимости. Добавьте это в конец вашего updateClock, возможно, перед ним стоит проверка:
setTimeout(function() { updateClock(element); }, settings.refreshRate);