Оновлення в листопаді 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");