Дополнен 4 года назад
В плагине приведённом выше, обращение идёт через запуск функции:
$(selector).responsiveBlock();
Но я бы не хотел запускать событие как функцию, я хотел бы чтобы плагин и был событием.
Я пытаюсь сделать событие, которое будет само запускаться как только к нему обратятся:
$(selector).on('responsiveBlock', function(){});
Исходя из этого события, я бы хотел задавать какое-то поведение, как если бы внутри функции я написал следующее:
$(selector).on('responsiveBlock', function()
{
alert('Test');
});
Логично предположить, что alert() в данном случае, будет запускаться при наведении курсора на div. При этом, если я задал какое-то поведение внутри плагина, оно тоже должно учитываться.
Как сделать нечто подобное? Я не смог найти не одного реального примера. Распишите как вам удалось этого добиться.
(function($)
{
jQuery.fn.responsiveBlock = function(options)
{
var th = $(this),
options = $.extend(
{
defColor:"white",
hoverColor:"red"
}, options);
var make = function()
{
th.css("background-color", options.defColor).mouseenter(function()
{
th.css("background-color", options.hoverColor);
}).mouseleave(function()
{
th.css("background-color", options.defColor);
});
};
return this.each(make);
};
})(jQuery);
$('div').responsiveBlock();
https://jsfiddle.net/1btwhca7/
Сам пример взят из статьи:
http://jquery.page2page.ru/index.php5/Создание_плагина_jQuery
При попытке воспроизвести последний пример, ничего не происходит. Как выполнить функцию, по подобию самостоятельного события?
Пример самостоятельного события:
$(selector).on('change', function(){});