Нажать на ссылку - она запустилась и стала неактивной. Помогите сделать.
Привет! Есть в корп. приложении отчеты, которые долго строятся. Иногда люди жмут на ссылку по 5 раз. Нужно сделать так чтобы она после первого нажатия срабатывала и становилась неактивной.
Попробовал сделать вот так... $("a.longProcess") .click(function(){ $(this).attr("href","#").css('color','silver') }); Но теперь она принажатии указывает на #, и не срабатывает сама по себе. |
Вообще кошмар.
Есть два варианта. 1: $("a.longProcess").click(function(evt){ var target = $(this); if (target.hasClass('inactive')) { evt.preventDefault(); return false; } else { target.addClass('inactive'); // стартуем долгий процесс… } }); Более правильный вариант 2: $("span.longProcess").bind('click', generateReport); var generateReport = function(evt) { var target = $(this); target.unbind('click', generateReport).addClass('inactive'); // стартуем долгий процесс… } span.longProcess надо CSS-ом привести к виду ссылки. В обоих случаях надо показать человеку анимацию, что дескать «процесс идет, надо подождать». Главное это, а невозможность запуска еще раз — это так, fool proof. |
Еще лучше: кнопку прятать совсем, вместо нее показывать колесико/прогресс-бар/в общем, символ процесса загрузки.
|
Часовой пояс GMT +3, время: 11:33. |