jQuery отключить ссылку

Кто-нибудь знает, как отключить ссылку в jquery БЕЗ использования return false; ?

В частности, то, что я пытаюсь сделать, – это отключить ссылку элемента, щелкнув по нему, используя jquery, который запускает некоторые вещи, а затем снова активирует эту ссылку, чтобы при повторном нажатии она работает по умолчанию.

Благодарю. Дейв

UPDATE Вот код. То, что ему нужно сделать после .expanded classа .expanded , является повторное включение отключенной ссылки.

 $('ul li').click(function(e) { e.preventDefault(); $('ul').addClass('expanded'); $('ul.expanded').fadeIn(300); //return false; }); . $('ul li').click(function(e) { e.preventDefault(); $('ul').addClass('expanded'); $('ul.expanded').fadeIn(300); //return false; }); 

 $('#myLink').click(function(e) { e.preventDefault(); //do other stuff when a click happens }); 

Это предотвратит поведение по умолчанию гиперссылки, которая должна посещать указанный href.

Из учебника jQuery:

Для кликов и большинства других событий вы можете предотвратить поведение по умолчанию – здесь, следуя ссылке на jquery.com – вызывая event.preventDefault () в обработчике событий

Если вы хотите preventDefault() только в случае выполнения определенного условия (например, что-то скрыто), вы можете проверить видимость вашей ul с расширением classа. Если он виден (т. Е. Не скрыт), ссылка должна запускаться как обычно, поскольку оператор if не будет введен, и поэтому поведение по умолчанию не будет предотвращено:

 $('ul li').click(function(e) { if($('ul.expanded').is(':hidden')) { e.preventDefault(); $('ul').addClass('expanded'); $('ul.expanded').fadeIn(300); } }); . $('ul li').click(function(e) { if($('ul.expanded').is(':hidden')) { e.preventDefault(); $('ul').addClass('expanded'); $('ul.expanded').fadeIn(300); } }); 

Попробуй это:

 $("a").removeAttr('href'); 

РЕДАКТИРОВАТЬ-

Из вашего обновленного кода:

  var location= $('#link1').attr("href"); $("#link1").removeAttr('href'); $('ul').addClass('expanded'); $('ul.expanded').fadeIn(300); $("#link1").attr("href", location); .  var location= $('#link1').attr("href"); $("#link1").removeAttr('href'); $('ul').addClass('expanded'); $('ul.expanded').fadeIn(300); $("#link1").attr("href", location); 

Для других, которые пришли сюда через Google, как я, – вот еще один подход:

 css: .disabled { color: grey; // ...whatever } jQuery: $('#myLink').click(function (e) { e.preventDefault(); if ($(this).hasClass('disabled')) return false; // Do something else in here if required else window.location.href = $(this).attr('href'); }); // Elsewhere in your code if (disabledCondition == true) $('#myLink').addClass('disabled') else $('#myLink').removeClass('disabled') 

Помните: не только это class css

class = “ButtonStyle”

но и эти два

class = “buttonstyle disabled”

поэтому вы можете легко добавлять и удалять дополнительные classы с помощью jQuery. Не нужно касаться href …

Я люблю jQuery! 😉

Вот альтернативное решение css / jQuery, которое я предпочитаю для его краткости и минимизации сценариев:

CSS:

 a.disabled { opacity: 0.5; pointer-events: none; cursor: default; } 

JQuery:

 $('.disableAfterClick').click(function (e) { $(this).addClass('disabled'); }); 

Вы можете удалить клик по ссылке, следуя;

 $('#link-id').unbind('click'); 

Вы можете повторно активировать ссылку, следуя указаниям,

 $('#link-id').bind('click'); 

Вы не можете использовать свойство disabled для ссылок.

Если вы пройдете маршрут href, вы можете сохранить его

Отключить:

 $('a').each(function(){ $(this).data("href", $(this).attr("href")).removeAttr("href"); }); 

Затем снова включите, используя:

 $('a').each(function(){ $(this).attr("href", $(this).data("href")); }); 

В одном случае я должен был сделать это так, потому что события щелчка уже были связаны где-то в другом месте, и я не контролировал его.

Я всегда использую это в jQuery для отключения ссылок

 $("form a").attr("disabled","disabled"); 

Мой fav в “checkout, чтобы отредактировать элемент и предотвратить -wild дикие западные щелчки в любом месте, а в функции проверки”

 $('a').click(function(e) { var = $(this).attr('disabled'); if (var === 'disabled') { e.preventDefault(); } }); 

Поэтому, если я хочу, чтобы все внешние ссылки во второй панели инструментов действия были отключены во время «режима редактирования», как описано выше, я добавлю функцию редактирования

 $('#actionToolbar .external').attr('disabled', true); 

Пример ссылки после пожара:

 Google 

И теперь вы можете использовать свойство disabled для ссылок

Ура!

Вы должны найти ответ здесь .

Спасибо @Will и @Matt за это элегантное решение.

 jQuery('#path .to .your a').each(function(){ var $t = jQuery(this); $t.after($t.text()); $t.remove(); }); 

Просто запустите материал, установите флаг, верните false. Если флаг установлен, ничего не делайте.

вы можете просто скрыть и показать ссылку, как вам нравится

 $(link).hide(); $(link).show(); 

Я знаю, что это не с jQuery, но вы можете отключить ссылку с помощью простого css:

 a[disabled] { z-index: -1; } 

HTML будет выглядеть так:

 Take Survey 

Это работает для ссылок, в которых атрибут onclick установлен в строке. Это также позволяет вам позже удалить «return false», чтобы включить его.

  //disable all links matching class $('.yourLinkClass').each(function(index) { var link = $(this); var OnClickValue = link.attr("onclick"); link.attr("onclick", "return false; " + OnClickValue); }); //enable all edit links $('.yourLinkClass').each(function (index) { var link = $(this); var OnClickValue = link.attr("onclick"); link.attr("onclick", OnClickValue.replace("return false; ", "")); }); 

unbind() устарел в jQuery 3 , вместо этого используйте метод off() :

 $("a").off("click"); 

Просто используйте $("a").prop("disabled", true); , Это действительно отключит элемент link. Нужно быть prop("disabled", true) . Не используйте attr("disabled", true)

  • Как сохранить: активный стиль css после нажатия элемента
  • Удалить упорное подчеркивание ссылки
  • Как создать прямую ссылку на любую коробку fancybox
  • Откройте внешние ссылки в браузере с веб-браузером Android
  • Связывание значения столбца в jqGrid с новой страницей с помощью GET
  • Как создать ссылки в текстовом клиенте?
  • Что такое синтаксис RTF для гиперссылки?
  • html ссылки не работают (с использованием base href)
  • Interesting Posts

    В чем разница между локальной переменной, полем экземпляра, входным параметром и полем classа?

    В OpenCV 3.0 отсутствует несвободный модуль

    VB.Net Передача значений в другую форму

    Многострочное регулярное выражение для соответствия конфигурационному блоку

    MAT (Eclipse Memory Analyzer) – как просматривать растровые изображения из дампа памяти

    Что такое облачные вычисления?

    Как открыть окно команд из библиотеки документов?

    Как я могу найти приложение в Windows Store?

    Что такое разбивка на синтаксис лямбды Java?

    Переименовать несколько столбцов по именам

    typedef struct vs struct definitions

    Отключение кеша Chrome для разработки веб-сайта

    Переменная объекта или с не заданной переменной блока (Ошибка 91)

    Есть ли способ сохранить функцию в списке или словаре, чтобы при вызове индекса (или ключа) он запускал сохраненную функцию?

    Тестирование частного метода с использованием mockito

    Давайте будем гением компьютера.