Кто-нибудь знает, как отключить ссылку в jquery БЕЗ использования return false;
?
В частности, я пытаюсь отключить ссылку на элемент, щелкнув по нему с помощью jquery, который вызывает некоторые вещи, а затем повторно включить эту ссылку, чтобы при повторном нажатии она работала по умолчанию.
Спасибо. Дейв
ОБНОВЛЕНИЕ
Вот код. Что нужно сделать после того, как .expanded
класс был применен, - это снова включить отключенную ссылку.
$('ul li').click(function(e) {
e.preventDefault();
$('ul').addClass('expanded');
$('ul.expanded').fadeIn(300);
//return false;
});
Ответы:
Это предотвратит поведение гиперссылки по умолчанию, которая заключается в посещении указанного href.
Из учебника jQuery :
Если вы хотите, чтобы
preventDefault()
выполнялось только определенное условие (например, что-то скрыто), вы можете проверить видимость вашего ul с расширенным классом . Если она видна (то есть не скрыта), ссылка должна срабатывать как обычно, поскольку оператор if не будет введен, и, следовательно, поведение по умолчанию не будет предотвращено:источник
Попробуй это:
РЕДАКТИРОВАТЬ-
Из вашего обновленного кода:
источник
href="#"
Для других, кто пришел сюда через Google, как я - вот другой подход:
Помните: не только это класс CSS
но и эти два
так что вы можете легко добавлять и удалять другие классы с помощью jQuery. Не нужно трогать href ...
Я люблю JQuery! ;-)
источник
on()
для фильтрации всехa.disabled
ссылок и предотвращения дефолта. Тогда все, что вам нужно сделать, это включить / выключить отключенный класс, и ссылка будет работать сама по себе, когда «включена».if(disabledCondition)
== true
. :)if ($(this).hasClass('disabled')) { e.preventDefault(); }
?Вот альтернативное решение css / jQuery, которое я предпочитаю для краткости и минимизации сценариев:
CSS:
JQuery:
источник
.prop("tabindex", "-1");
послеaddClass
Вы можете удалить клик для ссылки, следуя;
Вы можете снова включить ссылку, выполнив следующие действия:
Вы не можете использовать свойство «отключен» для ссылок.
источник
Если вы идете по маршруту HREF, вы можете сохранить его
Отключить:
Затем включите снова:
В одном случае мне пришлось сделать это таким образом, потому что события щелчка уже были связаны где-то еще, и я не мог их контролировать.
источник
Я всегда использую это в JQuery для отключения ссылок
источник
$("form a").attr("disabled", false);
чтобы включить его сноваПример ссылки html:
использовать это в JQuery
добавить это к CSS:
источник
pointer-events: none
свойство из якорных элементов, они возвращаются к тому, что делали ранее при нажатии. Поэтому, если они были основными гиперссылками, они возвращаются к переходу по URL-адресу в своемhref
атрибуте, и если у них установлен обработчик события click, он снова становится активным. Гораздо проще, чем сохранятьhref
значения и обработчики кликов.Моя любимая функция «оформить заказ, чтобы отредактировать элемент и предотвратить - дикие западные клики в любом месте - во время оформления заказа»
Поэтому, если я хочу, чтобы все внешние ссылки на панели инструментов второго действия были отключены в режиме редактирования, как описано выше, я добавлю функцию редактирования
Пример ссылки после пожара:
И теперь вы можете использовать отключенное свойство для ссылок
Ура!
источник
Вы должны найти ответ здесь .
Спасибо @Will и @Matt за это элегантное решение.
источник
Вы можете просто скрыть и показать ссылку, как вам нравится
источник
Просто включите вещи, установите флаг и верните false. Если флаг установлен - ничего не делать.
источник
unbind()
устарелjQuery 3
, используйтеoff()
метод вместо:источник
Я знаю, что это не с jQuery, но вы можете отключить ссылку с помощью простого CSS:
HTML будет выглядеть так
источник
Это работает для ссылок, которые имеют встроенный атрибут onclick. Это также позволяет позже удалить «return false», чтобы включить его.
источник
Просто используйте
$("a").prop("disabled", true);
. Это действительно отключит элемент de link. Должен бытьprop("disabled", true)
. Не использоватьattr("disabled", true)
источник