Проблема с dblclick
Добрый день, звените если тема баян но найти схожую не смог.
Существует на странице ссылки (названия товаров). Задача: при двойном клике должно открываться окошко для быстрого редактирования названия. Загвоздка в том что ссылка начинает открываться и прервать загрузку страницы у меня не удается. Пример ссылки <a class="lnk_red_u DoubleClickUpdate" style="text-decoration: none;" href="/product-302-alcatel.html" href1="index.php?do=usercp&go=nck&select=request&productid=302">Alcatel</a> код которым я пытался остановить открытие ссылки $('.DoubleClickUpdate').bind('dblclick', function(event) { window.stop(); event.stopImmediatePropagation(); event.stopPropagation(); event.preventDefault(); return false; }); |
$('.DoubleClickUpdate').click(function(e){ e.preventDefault() }); |
Нужно чтоб при клике открывало ссылку, а при дабл клике было совсем другое действие (открывается окно для быстрого редактирования). Нужно как то в дабл клике сказать браузеру прекратить загрузку.
|
дабл клик наступает позже клика, так что так не получится. можно по клику выставлять таймер, давая возможность сделать даблклик.
|
все равно не понял я сначала прерываю загрузку (e.preventDefault()), потом если происходит двойной клик загрузку не продолжаю, а если не произошел двойной клик продолжаем загрузку, каким образом продолжить загрузку?
|
e.preventDefault() предотвращает действие браузера по умолчанию. Для даблклика по ссылке нет никакого действия. Ваш код делает чуть менее чем ничего.
Остановку загрузки страницы остановить нельзя насколько я знаю. |
<script src="http://code.jquery.com/jquery-latest.js"></script> <a class="lnk_red_u DoubleClickUpdate" style="text-decoration: none;" href="/product-302-alcatel.html" href1="index.php?do=usercp&go=nck&select=request&productid=302">Alcatel</a> <script> $('.DoubleClickUpdate').click(function() { var b=$(this);b.toggleClass('Nodb'); setTimeout(function() {b.removeClass('Nodb');},500) if(!b.hasClass('Nodb')){clearTimeout(timeout_id0);alert('Тут двойного!')} if(b.hasClass('Nodb')){timeout_id0 = setTimeout(function() {alert('Тут функция одиночного клика!')},500)} return false; }); </script> |
Ну тогда уж
<a class="lnk_red_u DoubleClickUpdate" style="text-decoration: none;" href="/product-302-alcatel.html" href1="index.php?do=usercp&go=nck&select=request&productid=302">Alcatel</a> <script src="//code.jquery.com/jquery-latest.js"></script> <script> $('.DoubleClickUpdate').click(function(e) { e.preventDefault(); if (e.originalEvent.detail == 1) { var link = this.href; var timerId = setTimeout(function() { alert('Переход по ссылке!'); //window.location = link; }, 300); $(this).data('timer', timerId); } else { var timerId = $(this).data('timer'); clearTimeout(timerId); alert ('Даблклик!'); // делаем дела } }); </script> IE8 лесом ) |
Часовой пояс GMT +3, время: 09:56. |