Обновление от ноября 2020 года: я думаю, что лучший способ для этого - это метод 4 из этой статьи. Элемент
(или любой другой элемент-оболочка) остается семантическим и доступным, в то же время «кликабельным» по всей области. Это не нарушает выделение текста и уважает другие «вложенные» интерактивные элементы.
Это совершенно правильный HTML:
anything
И помните, что вы можете создавать ссылки display: block;
, чтобы вся прямоугольная область стала «интерактивной». Но если там тонна контента, это абсолютно ужасно для доступности, читать весь этот контент как интерактивную ссылку.
Если вам абсолютно необходимо использовать JavaScript, один из способов - найти ссылку внутри div и перейти к ней href
при нажатии на div. Это с jQuery:
$(".myBox").click(function() ( window.location = $(this).find("a").attr("href"); return false; ));
Ищет ссылку внутри div с классом «myBox». Перенаправляет на это значение ссылки при нажатии в любом месте div.
Справочный HTML:
blah blah blah. link
Или вы можете установить data-*
атрибут
и сделать что-то вроде:
window.location = $(".myBox").data("location");