Показать сообщение отдельно
  #2 (permalink)  
Старый 20.03.2009, 15:37
Профессор
Отправить личное сообщение для hogart Посмотреть профиль Найти все сообщения от hogart
 
Регистрация: 18.04.2008
Сообщений: 152

Вообще кошмар.

Есть два варианта.
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.

Последний раз редактировалось hogart, 20.03.2009 в 15:41.
Ответить с цитированием