(function($) {
//Стандартные настройки
var defaults = {
'jsonResult' : '/'
};
var methods = {
// Инициализация
init : function(params) {
// Актуальные настройки при вызове
var options = $.extend({}, defaults, params);
// Инициализируем только один раз
var init = $(this).data("dropdown");
if (init) {
return this;
} else {
//Записали информация о том что уже инициализирован
$(this).data('dropdown', true);
//Дорисовали всякие круглые уголочки и стрелочки
$(this).children("a").prepend("<span class='left'></span><span class='right'></span>");
$(this).children("ul").append("<li class='bottom_border'><span class='left'></span><span class='right'></span></li>");
$(this).find("ul li").prepend("<span class='left'></span><span class='right'></span>");
//События
return this.bind("click.dropdown", function() {
});
}
},
// Клик по пункту выпадающего списка (если в родителе, то data_id = 0)
select : function(data_id) {
$.getJSON('/php/service.php', function(data) {
var items = [];
//Сформировали массив значений
$.each(data, function(key, val) {
items.push('<li data-id="' + key + '">' + val + '</li>');
});
//Записали в UL
$(this).find("ul").html(items.join(''));
});
},
// Показать/скрыть выпадающий список
toggle : function() {
$(this).find("ul").toggle();
},
// Скрыть выпадающий список
hide : function(){
$(this).find("ul").hide();
},
// Сломать всё нахрен
destroy : function() {
$(this).unbind(".dropdown");
}
};
$.fn.dropdown = function(method, params) {
if (methods[method]) {
// если запрашиваемый метод существует, мы его вызываем
// все параметры, кроме имени метода пойдут в метод
// this так же перекочует в метод
return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
} else if ( typeof method === 'object' || !method) {
// если первым параметром идет объект, либо совсем пусто
// выполняем метод init
return methods.init.apply(this, arguments);
} else {
// если ничего не получилось
$.error('Метод "' + method + '" не найден в плагине jQuery.dropdown');
}
};
})(jQuery);
stty -F /dev/ttyS1 [speed] [options]