我正在使用 JQuery,如下所示:
$(window).resize(function() { ... });
然而,如果用户通过拖动窗口边缘手动调整浏览器窗口的大小,则上述.resize
事件会多次触发。
问题:如何在浏览器窗口调整大小完成后调用函数(以便事件仅触发一次)?
$(window).resize(function() { ... });
然而,如果用户通过拖动窗口边缘手动调整浏览器窗口的大小,则上述.resize
事件会多次触发。
问题:如何在浏览器窗口调整大小完成后调用函数(以便事件仅触发一次)?
var resizeTimer;
var resized = false;
$(window).resize(function() {
clearTimeout(resizeTimer);
resizeTimer = setTimeout(function() {
if(!resized) {
resized = true;
$(document).mouseover(function() {
resized = false;
// do something here
$(this).unbind("mouseover");
})
}
}, 500);
});
jQuery(window).resize(function() {
// this. is window
if( this.resizeTO) {
clearTimeout(this.resizeTO)
};
this.resizeTO = setTimeout(function() {
jQuery(window).mouseenter(function() {
if( jQuery(window).width() < 700 && jQuery(window).width() > 400 ){
console.log("mouseenter reloads elements");
// is loading the page
location.reload();
//
}; // just mobile
}); // mouse fired
}, 400); // set Time Ouuut
});
500ms
,我们可以清除setTimeout。