Событие щелчка jQuery не работает в IE11 Windows8 - PullRequest
1 голос
/ 08 октября 2019

Не знаю, почему это не сработает, но по какой-то причине событие click запускает console.log, но тогда не выполняется addClass для элемента HTML, на который я пытаюсь нацелиться. Не уверен, есть ли что-то, что мне нужно высматривать. Я проверил это в Chrome на своем Mac, и он работает нормально, но потом, когда я тестирую на Surface под управлением Windows8, никаких кубиков.

Вот что я имею:

HTML:

<div class="window-element">
<p>thing to test</p>
<a href="#" class="close-box">Close this</a>
</div>

JS:

$(".close-box").on('click', function(e){
    $(".window-element").addClass("hidden");
    console.log("click test");
    e.preventDefault();
});

Не уверены, есть ли еще что-то, с чем мне нужно работать?

Ответы [ 2 ]

1 голос
/ 08 октября 2019

Чтобы сделать как можно меньше изменений, я бы изменил ваш JS на:

$(document).on('click','.close-box', function(e){
    $('.window-element').addClass('hidden');
    console.log("click test");
    e.preventDefault();
});

Это, похоже, сработало для меня. Попробуйте этот jsfiddle, чтобы убедиться, что это то, что вы ищете: https://jsfiddle.net/91myczwj/1/

0 голосов
/ 08 октября 2019

Я бы предложил вам использовать ванильный JavaScript для этого конкретного фрагмента кода, например:

HTML:

<div class="window-element">
<p>thing to test</p>
<a href="#" class="close-box">Close this</a>
</div>

JavaScript:

const closeBox = document.querySelector('.close-box');
const windowElement = document.querySelector('.window-element');

closeBox.addEventListener('click', function(e){
    windowElement.classList.add("hidden");
    console.log("click test");
    e.preventDefault();
});

Проверьте это пример рабочего кода .

...