Подтвердить что ты не робот

Удаление события $(window).resize в jQuery

Часть страницы, которую я разрабатываю, требует, чтобы событие $(window).resize добавлялось в div, когда пользователь нажимает кнопку, чтобы переключаться между изменением размера его с окном и оставляя его фиксированным с первоначальным размером

function startResize() {
    $(window).resize(function() {
        $("#content").width(newWidth);
        $("#content").height(newHeight);
    });
}

То, что я не могу решить, - это "выключить" это событие, когда кнопка снова нажата, чтобы содержимое перестало изменять размер.

function endResize() {
    // Code to end $(window).resize function
    $("#content").width(originalWidth);
    $("#content").height(originalHeight);
}

Любая помощь с этим будет принята с благодарностью.

4b9b3361

Ответ 1

function endResize() {
    $(window).off("resize");
    $("#content").width(originalWidth);
    $("#content").height(originalHeight);
}

Обратите внимание, что это крайне навязчиво и может нарушить другой код.

Это лучший способ:

function resizer() {
    $("#content").width(newWidth);
    $("#content").height(newHeight);
}

function startResize() {
    $(window).resize(resizer);
}

function endResize() {
    $(window).off("resize", resizer);
}

Ответ 2

function startResize() {
   $(window).on("resize.mymethod",(function() {
     $("#content").width(newWidth);
     $("#content").height(newHeight);
   }));
}

function endResize() {
   $(window).off("resize.mymethod");
}

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