Предотвращение нескольких кликов до удаления записи - PullRequest
3 голосов
/ 21 февраля 2012

У меня есть таблица HTML.Для каждой строки есть запись в базе данных, также в каждой строке у меня есть кнопка удаления (значок изображения).

При удалении я использую Ajax-запрос для удаления записи из базы данных. В случае успеха я отображаюсообщение и я скрыть () / удалить () строки из таблицы.

Работает нормально. НО, если я нажму реальный БЫСТРЫЙ на нескольких строках , записи удаляются нормально, но некоторые строки все еще отображаются.

У меня есть функция щелчка, прикрепленная к классу

$(".tog").click(function(e){ ...

Я уже читал о "toggleClass (), delay ()" в jQuery, они не работали.

Есть идеи?

Ответы [ 3 ]

5 голосов
/ 21 февраля 2012

вы можете использовать плагин http://jquery.malsup.com/block/#demos во время выполнения ajax-запроса.

$.ajaxSetup({
    cache:false,
    beforeSend: function() {
       $('#content').block({ 
              message: ''
            }); 
    },
    complete: function(){
        $('#content').unblock(); 
    },
    success: function() {}
    }); 

замените #content вашим основным идентификатором div

0 голосов
/ 21 февраля 2012

В функции click вы отключаете события

$(".tog").click(function () { $(this).unbind() ... 

Активировать после, если необходимо

0 голосов
/ 21 февраля 2012

Это не рекомендуется, но с Jquery.ajax вы можете использовать опцию async:false.

. Таким образом, пользователь не сможет выполнять какие-либо действия в браузере., но браузер может временно казаться зависшим.

Вы также можете рассмотреть возможность отображения overlay для пользователя, пока ваш запрос не будет завершен.При этом браузер не будет зависать, и вы также можете отображать некоторые текущие сообщения пользователю.

...