Нажать на ссылку - она запустилась и стала неактивной. Помогите сделать.
Привет! Есть в корп. приложении отчеты, которые долго строятся. Иногда люди жмут на ссылку по 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, время: 08:04. |