0

我有一个 jquery ui 可调整大小的处理程序,因为它在 web 应用程序中,所以它往往很慢。可以慢慢拖拽不松手,但如果偏离手柄,它就会“松手”并停止拖拽。

$footer.resizable({ // Footer UI resize
    handles: 'n',
    maxHeight: footerHeight,
    minHeight: minFooterHeight - 5,
    stop: function () { // When user has stopped resizing

    $footer.css({ // reset footer width and top position
        'width': '100%',
        'top': 'auto'
    });

    $footerAndStatusbar.show();

    if ($(this).height() < minFooterHeight) { // if the height < #, hide it
        updateHeight(0, $footer);
        $footerAndStatusbar.hide();
    }

    updateHeight(); // update #mainWrap height
},
resize: function (event, ui) {
    $footerContent.height($(this).height() - 35);

    updateHeight(); // On footer resize, calculate and resize
}
}).css('height', Math.ceil((footerHeight + footerHeight / 2) / 2)); ;

$window.resize(function () { // Window resize
    updateHeight();
    editTooltip.tooltip('reposition');
});

我意识到 $window (又名 $(window) )调整大小被触发每个像素拖动,(虽然我不知道为什么)导致巨大的性能下降。基本上,我的问题是,为什么要调用窗口调整大小?“放手”是怎么回事

4

1 回答 1

0

尝试使用resizestop而不是resize

resizestop: function (event, ui) {
    $footerContent.height($(this).height() - 35);

    updateHeight(); // On footer resize, calculate and resize
}

不同之处在于resize每次鼠标在拖动时移动时都会调用它。根据您的updateHeight()功能的复杂性,这可能会变得非常慢。

resizestop仅在调整大小完成后才调用 - 即。单击/拖动结束。

于 2012-04-30T14:10:10.713 回答