Сделать изображение интерактивным на основе определенного условия в Thymeleaf

Я получаю атрибут html «image_clickable_status», если это правда, мне нужно сделать изображение кликабельным, а если он ложный, изображение не должно быть кликабельным. Ниже то, что я пытаюсь сделать

<div th:switch=${image_clickable_status}>

 <a th:case=“true ” th:href = "@{/getConsent/yes}">
<a th:case=“false ” th:href=“#”>
<img 

 src = "https://samplegoogle.img" alt = "viu"/>
</a>
 </a>

 </div>

Но это не работает, есть идеи, как лучше справиться с этой ситуацией.

Почему вложенный элемент <a>?

Himanshu Bhardwaj 21.08.2018 08:25
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
312
2

Ответы 2

Вы можете использовать pointer-events: none;.

например

<a th:style = "${image_clickable_status} ? '' : 'pointer-events: none;'" 
   th:href = "@{/getConsent/yes}">
    <img src = "https://samplegoogle.img" alt = "viu"/>
</a>

Вы можете использовать оператор if-else, чтобы отличить ссылку от абзаца:

<div th:if = "${image_clickable_status}">
    <a th:case=“true ” th:href = "@{/getConsent/yes}">
        <img  src = "https://samplegoogle.img" alt = "viu"/>
    </a>
</div>
<div th:unless = "${image_clickable_status}">
    <img  src = "https://samplegoogle.img" alt = "viu"/>
</div>

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

<a th:style = "${image_clickable_status} ? '' : " + 
            "'pointer-events: none; cursor: default;'" 
   th:href = "@{/getConsent/yes}">

    <img src = "https://samplegoogle.img" alt = "viu"/>
</a>

Другие вопросы по теме