Многофункциональный обработчик кнопок JQuery

Часто кнопки используются для всякой лабуды, например - переход на другую страницу, на которую не должны попадать роботы. По этому делается это не простой ссылкой, а ява-скриптом и привязывается это к какому-нибудь объекту. Можно сидеть, писать индусский код для обработки каждой кнопки, а можно использовать простую функцию обработки. Но она так же полезна - когда нужно отправить какие-нибудь данные через Ajax.

И так код:

$("button").click(function(event){
var link = $(this).data('link');
var ajax = $(this).data('ajax');
var txt = $(this).data('txt');
if (link) {document.location.href = link;}
if (ajax) {
      $.ajax({
      type: "POST",
      url: ajax,
      data: "txt=" + txt
      })
}
})


Код понятен и без слов, но к сути, есть кнопка, ей ставим атрибут data-link="" и при нажатии на нее - случится переход по ссылке.

Вариант два - нужно отправить какие-то данные с этой кнопки на какой-то обработчик на сервере, собсно пишем уже два атрибута:

data-ajax='/act.php' -  собственно ссылка на обработчик и данные которые нужно кинуть пост-запросом data-txt='blablabla'

И так - скрипту /act.php придет пост-запрос с именем txt и данными blablabla.

Где же может пригодится столь малая пересылка данных? например - в голосовалке, лайках и прочей фигне, ведь /act.php может принимать не только пост-запрос, но и гет! для этого опять меняем атрибут data-ajax='/act.php?page=1' и так далее по мере развития фантазии.

В итоге имеем не сложный js-скрипт и кнопки, которые можно озадачить хоть чем, всего лишь меняя их атрибуты! Но что делать, если есть особенная кнопка, которая не должна подчиняться этому скрипту? просто не указываем атрибуты, используемые в скрипте!

Комментарии

Дорогие посетители моего сайта, подпишитесь на мой канал в Дзене! Это стимулирует меня писать новые и новые познавательные статьи!