Сделайте ссылку HTML, которая ничего не делает (буквально ничего)



Я хочу ссылку, которая ничего не делает. Я не хочу этого:



<a href="#">



потому что тогда URL становится something.com/whatever/#.



единственная причина, по которой я хочу ссылку, чтобы пользователь мог видеть, что они могут нажать на текст. JavaScript используется для выполнения некоторых действий, поэтому мне не нужна ссылка, чтобы идти куда угодно, но мне нужно, чтобы она выглядела как ссылка!



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

419   9  

9 ответов:

следующая будет препятствовать вашему href из того, работал

<a href="#" onclick="return false;">

Если вы используете jQuery,event.preventDefault() можно использовать

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

<a href="javascript:void(0);">link</a>

в HTML5, это очень просто. Просто опустите .

<a>Do Nothing</a>

С MDN на атрибуте тега a href:

href

это был единственный обязательный атрибут для якорей, определяющих гипертекстовую ссылку источника, но больше не требуется в HTML5.


как насчет ручного курсора Ховер?

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

a {
    cursor: pointer;
}
<a>Do Nothing</a>

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


как насчет того, чтобы сделать его tab-focusable?

просто добавить tabindex="0" для элемент.

<a tabindex="0">Do Nothing</a>


имеет ли смысл использовать a тег без ссылки?

обычно нет, это, вероятно, лучше использовать button элемент вместо этого, и стиль его с помощью CSS. Но что бы вы ни использовали, избегайте использования произвольного элемента типа div когда это возможно, так как это вообще не семантика.

не делайте это ссылкой (хотя это предпочтительно делать) и стилизуйте ее с помощью CSS, чтобы она выглядела как ссылка:

p.not-a-link { text-decoration: underline; cursor: pointer } 

или даже лучше просто сделать ссылку и пусть функция javascript, которая используется e.preventDefault() чтобы предотвратить ссылку.

добавить ссылку href Так что пользователи без JS включен будет по-прежнему иметь возможность использовать его (в качестве запасного варианта).

<a href="javascript:;">Link text</a> - Это то, что я обычно использую

ответ @ Curt будет работать, но вы можете использовать стиль курсора в css, чтобы сделать его похожим на ссылку, не беспокоясь о создании фиктивной ссылки. Используйте руку или указатель в зависимости от соответствия браузера.

Кросс-браузер соответствует указателю css (от стиль курсора руководство):

element {
    cursor: pointer;
    cursor: hand;
}

один из способов, который никто не упомянул, - это указать href на пустое локальное расположение файла, например

<a href='\'>my dead link</a>

почему? Если вы используете фреймворк, такой как react или angular, компилятор выплюнет некоторые предупреждения, которые могут сделать ваш журнал или консоль грязными. Этот метод также предотвратит роботов или пауков от неправильного связывания вещей.

НЕ ИСПОЛЬЗОВАТЬ <a>... вместо этого используйте <span class='style-like-link'> а затем использовать класс, чтобы стиль его, как вы хотите.

мы можем достичь этого с помощью javascript void, который обычно включает в себя оценку выражения и возврат undefined, который включает в себя добавление javascript:void(0); на href.

оператор пустоту обычно используется лишь для того, чтобы получить неопределенное примитивное значение, как правило, через "пустоту(0)" (что эквивалентно "недействительными 0"). В этих случаях вместо него можно использовать глобальную переменную undefined (при условии, что ей не было присвоено значение, отличное от значения по умолчанию).

a {
  text-decoration: initial;
}
<a href="javascript:void(0);"> This link actually does nothing when clicked</a>

Comments

    Ничего не найдено.