jQuery Mouseover AND Mouseout с вкл и выкл не работает - PullRequest
0 голосов
/ 23 февраля 2020

У меня есть несколько функций в jQuery, которые управляют отображением div при наведении родительского div. Первые две функции:

$(".parentDiv").mouseover(function () {
    $(this).find(".childDiv").css('visibility','visible');
});

$(".parentDiv").mouseout(function () {
    $(this).find(".childDiv").css('visibility','hidden');
});

Они отлично работают. Позже, у меня есть функция щелчка, связанная с 'childDiv':

$(".childDiv").click(function (e) {

});

У меня есть несколько функций в этой функции, которые отлично работают. Однако в какой-то момент мне нужно отключить функции mouseover и mouseout на родительском div. Я делаю это по:

$("#" + this.id).closest(".parentDiv").off("mouseover mouseout");

Это прекрасно работает. Но, когда я пытаюсь включить его на основе других функций в функции, используя:

$("#" + this.id).closest(".parentDiv").on("mouseover mouseout");

Не включается снова. Я знаю, что селектор работает, во-первых, потому что он работает, когда я его выключаю, а также потому, что я добавил следующий код, и он работает:

$("#" + this.id).closest(".parentDiv").css("border","1px solid #000");

Кто-нибудь знает, почему это не работает? Я нахожу странным то, что отключение указателя мыши и отключения мышки работает и изменение границы также работает, но включение указателя мыши и указателя мыши не работает. Чего мне не хватает?

1 Ответ

0 голосов
/ 23 февраля 2020

Это потому, что .off не 'отключает' события, он удаляет обработчики событий.

https://api.jquery.com/off/

Если вы хотите, чтобы события вернулись , вам придется прикрепить их снова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...