44

私が開発しているページの一部では、ウィンドウでのサイズ変更と元のサイズでの固定を切り替えるために、ユーザーがボタンをクリックしたときにdivに$(window).resizeイベントを追加する必要があります。

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);
}

これに関する助けをいただければ幸いです。

4

2 に答える 2

93
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);
}
于 2012-11-07T11:05:59.753 に答える
60
function startResize() {
   $(window).on("resize.mymethod",(function() {
     $("#content").width(newWidth);
     $("#content").height(newHeight);
   }));
}

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

クエリ メソッドで名前空間を使用すると、メソッドのみのサイズ変更イベントをオフにすることができます。

于 2013-12-20T00:29:44.760 に答える