Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.03.2013, 12:29
Интересующийся
Отправить личное сообщение для kalko91 Посмотреть профиль Найти все сообщения от kalko91
 
Регистрация: 13.04.2010
Сообщений: 12

Проблема с dblclick
Добрый день, звените если тема баян но найти схожую не смог.
Существует на странице ссылки (названия товаров). Задача: при двойном клике должно открываться окошко для быстрого редактирования названия. Загвоздка в том что ссылка начинает открываться и прервать загрузку страницы у меня не удается.
Пример ссылки
<a class="lnk_red_u DoubleClickUpdate" style="text-decoration: none;" href="/product-302-alcatel.html" href1="index.php?do=usercp&amp;go=nck&amp;select=request&amp;productid=302">Alcatel</a>

код которым я пытался остановить открытие ссылки
$('.DoubleClickUpdate').bind('dblclick', function(event) {
            window.stop();   
            event.stopImmediatePropagation();
            event.stopPropagation();
            event.preventDefault();
            return false; 
        });
Ответить с цитированием
  #2 (permalink)  
Старый 05.03.2013, 12:45
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

$('.DoubleClickUpdate').click(function(e){ e.preventDefault() });
Ответить с цитированием
  #3 (permalink)  
Старый 05.03.2013, 12:50
Интересующийся
Отправить личное сообщение для kalko91 Посмотреть профиль Найти все сообщения от kalko91
 
Регистрация: 13.04.2010
Сообщений: 12

Нужно чтоб при клике открывало ссылку, а при дабл клике было совсем другое действие (открывается окно для быстрого редактирования). Нужно как то в дабл клике сказать браузеру прекратить загрузку.
Ответить с цитированием
  #4 (permalink)  
Старый 05.03.2013, 13:22
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

дабл клик наступает позже клика, так что так не получится. можно по клику выставлять таймер, давая возможность сделать даблклик.
Ответить с цитированием
  #5 (permalink)  
Старый 05.03.2013, 15:33
Интересующийся
Отправить личное сообщение для kalko91 Посмотреть профиль Найти все сообщения от kalko91
 
Регистрация: 13.04.2010
Сообщений: 12

все равно не понял я сначала прерываю загрузку (e.preventDefault()), потом если происходит двойной клик загрузку не продолжаю, а если не произошел двойной клик продолжаем загрузку, каким образом продолжить загрузку?
Ответить с цитированием
  #6 (permalink)  
Старый 05.03.2013, 15:37
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

e.preventDefault() предотвращает действие браузера по умолчанию. Для даблклика по ссылке нет никакого действия. Ваш код делает чуть менее чем ничего.
Остановку загрузки страницы остановить нельзя насколько я знаю.
Ответить с цитированием
  #7 (permalink)  
Старый 06.03.2013, 06:17
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

<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&amp;go=nck&amp;select=request&amp;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>

Последний раз редактировалось Deff, 06.03.2013 в 06:51.
Ответить с цитированием
  #8 (permalink)  
Старый 06.03.2013, 06:45
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Ну тогда уж

<a class="lnk_red_u DoubleClickUpdate" style="text-decoration: none;" href="/product-302-alcatel.html" href1="index.php?do=usercp&amp;go=nck&amp;select=request&amp;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 лесом )
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с обработкой ескольких .hover() anocean jQuery 3 15.06.2012 22:43
Проблема с Popup окном vovuslik jQuery 5 12.06.2010 16:12
Проблема с CSS COKOJIOB (X)HTML/CSS 5 04.08.2009 14:19
Проблема, в менюшке Большой джо Элементы интерфейса 0 12.07.2009 17:12
Проблема спама lliberty AJAX и COMET 1 12.03.2009 16:47