Проблема с 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, время: 04:40. |