jQuery отключить ссылку
Кто-нибудь знает, как отключить ссылку в jquery БЕЗ использования return false;
?
В частности, то, что я пытаюсь сделать, – это отключить ссылку элемента, щелкнув по нему, используя jquery, который запускает некоторые вещи, а затем снова активирует эту ссылку, чтобы при повторном нажатии она работает по умолчанию.
Благодарю. Дейв
- Как создать прямую ссылку на любую коробку fancybox
- Facebook share link - можете ли вы настроить текст сообщения?
- Удалить упорное подчеркивание ссылки
- Может ли Google Chrome открывать локальные ссылки?
- Изменить цвет текста в тексте TextView и щелкнуть?
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; });
- Как я могу сделать ссылку на клики в NSAttributedString?
- Что такое синтаксис RTF для гиперссылки?
- Как создать ссылки в текстовом клиенте?
- Найти имя пакета для приложений Android, чтобы использовать Intent для запуска приложения Market из Интернета
- Как сделать кнопку похожим на ссылку?
- Scrapy: Следуйте ссылке, чтобы получить дополнительные данные элемента?
- Как добавить гиперссылку в JLabel
- Связывание значения столбца в jqGrid с новой страницей с помощью GET
$('#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)