Удаление события $(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);
}
Любая помощь с этим будет принята с благодарностью.
Ответы
Ответ 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");
}
используя пространство имен метода запроса, вы можете отключить событие изменения размера для вашего метода.