我有一个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))调整大小是在每个像素被拖动的情况下被触发,(虽然我不确定为什么)导致巨大的性能削减。基本上,我的问题是,为什么调用窗口调整大小?什么是“放手”
答案 0 :(得分:0)
尝试使用resizestop
代替resize
:
resizestop: function (event, ui) {
$footerContent.height($(this).height() - 35);
updateHeight(); // On footer resize, calculate and resize
}
不同之处在于每次拖动鼠标时都会调用resize
。根据{{1}}功能的复杂程度,这可能会变得非常慢。
updateHeight()
仅在调整大小完成后调用 - 即。点击/拖动结束。