kentuck1213
@kentuck1213

Как отключить дабл клик?

$('a#view_all').click(function (e) {
            var all_id = '',
                    id = $('div.all_id').each(function () {
                        all_id += $(this).data('id') + '-';
                    }),
                    html = '';
            e.preventDefault();
            $.ajax({
                url: '{{ action('PageController@getTours') }}',
                method: 'GET',
                dataType: 'json',
                data: {continent_id: '{{ $continent['id'] }}', tours_id: all_id},
                success: function (data) {
                    var tour = data;
                    var i = 0;
                    while (i < data.length) {
                        html += '<div class="hidden all_id" data-id="' + tour[i].id + '"></div>';
                        html += '<div class="row row-eq-height" style="display: none">';
                        ...
                        i++;
                    }
                    $('a#view_all').before(html);
                    $('div.row-eq-height').slideDown(800);
                }
            });
        });

Простой ajax запрос который подгружает данные при клике но , если нажать два раза быстро то он подгрузит одни и теже данные два раза хотя должен один раз. Пришла идея как откчить дабл клик ?
  • Вопрос задан
  • 525 просмотров
Решения вопроса 2
keslo
@keslo
>> Я допустил неточность в коде. Сейчас поправил.
Пример работы - https://jsfiddle.net/eqhq52t4/

В функции обработчике клика установите на событие после e.preventDefault();:
this.target.disabled = true;
Таки образом кнопка становится неактивной.
Ну и после того как пришли данные, в функцию success отдавайте в контекст события click:
this.target.disabled = false;
Таки образом кнопка снова станет активной.
Ответ написан
Dinfyru
@Dinfyru
web-developer
Можно создать переменную, вне событийной функции click и проверять её. Если равна true, то не выполняем функцию, если false то выполняем.
var isDo = false;
$('a#view_all').click(function (e) {
	if (isDo) retrun false;
	isDo = true;
	.....
	isDo = false;
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы