EDIT:
Ниже я использовал .on()
метод, вместо этого используйте .bind()
метод
$(this).bind('click', false);
$(this).bind('contextmenu', false);
, чтобы удалить настройки, вы можете использовать метод .unbind()
. Принимая во внимание, что метод .off()
не работает должным образом.
$(this).unbind('click', false);
$(this).unbind('contextmenu', false);
После исследования сотен решений! узнав о событиях указателя, вот что я сделал.
Как @ Kokodoko , упомянутый в его решении, подходящем для всех браузеров, кроме IE. pointer-events
работает в IE11 , а не в более низких версиях. Я также заметил в IE11 , события указателя не работают на дочерних элементах. И, следовательно, если у нас есть что-то вроде ниже
<a href="www.preshmalinetpereira.wordpress.com"><i class="car icon"></i><span>My Blog</span></a>
где span - дочерний элемент , настройка pointer-events: none
не будет работать
Чтобы преодолеть эту проблему, я написал функцию, которая могла бы действовать как указатель-событие для IE и будет работать в более низких версиях.
В файле JS
DisablePointerEvents(".DisablePointerEvents");
function DisablePointerEvents(classId) {
$(classId).each(function () {
$(this).on('click', false );
$(this).on('contextmenu', false );
});
}
В файле CSS
.DisablePointerEvents{
pointer-events: none;
opacity: 0.7;
cursor: default;
}
В HTML
<a href="www.preshmalinetpereira.wordpress.com" class="DisablePointerEvents"><i class="car icon"></i><span>My Blog</span></a>
Это имитировал сценарий pointer-events
, где pointer-events
не работает и когда возникает указанное выше условие дочерних элементов.
JS Fiddle для того же
https://jsfiddle.net/rpxxrjxh/