Любой видимый элемент может иметь событие click
(включая элемент <a>
), поэтому вы можете просто переключить HTML на:
<a onclick="showMore()" id="moreLess">See more Information</a>
Теперь, если вы сделаете это?Абсолютно нет. Причина в том, что HTML - это семантический язык.Это означает, что мы используем теги, которые лучше всего описывают содержание.Якорные теги описывают навигацию, и использование их просто как «ловушек» для события click
является неправильным использованием тега.Использование правильного семантического элемента для вашего контента является ключом к тому, чтобы различные устройства знали, как обрабатывать этот контент.Например, люди с нарушениями зрения полагаются на программное обеспечение для чтения с экрана, которое помогает им просматривать веб-страницы.Эти программы чтения с экрана знают, что <a>
элементы означают, что есть способ куда-то ориентироваться.Если вы используете элемент <a>
, но не для навигации, эти пользователи получат ошибочные результаты.
Если вы хотите, чтобы что-то визуально напоминало ссылку, а не кнопку, просто установите span
тег с обработчиком событий click
.Вы даже можете использовать CSS, чтобы придать ему тот же эффект при наведении, что и у ссылок:
#moreLess { text-decoration:underline; color:blue; cursor:pointer; }
#moreLess:hover { color: red; }
<span onclick="showMore()" id="moreLess">See more Information</span>
Наконец, вам действительно не следует настраивать обработку событий с помощью встроенных атрибутов событий HTML (onclick
) в первомместо.Вот как мы проводили обработку событий более 25 лет назад, и, к сожалению, эта древняя техника не умрет той смертью, которой она заслуживает, потому что часто люди просто копируют чужой код, не зная, что именно копируют, и ужасные сайты, такие как W3Schools, которые до сих пор его продвигают.,Вместо этого вы должны выполнять всю обработку событий в JavaScript отдельно от HTML, например:
document.getElementById("clickBait").addEventListener("click", function(){
console.log("Thanks!");
});
#clickBait { cursor:pointer; text-decoration:underline; color:blue; }
#clickBait:hover { background-color:yellow; }
<span id="clickBait">Click me</span>