由于某种原因,以下内容:
$(function() {
$(window).resize(function() {
alert("resized!");
});
});
仅当页面加载时才会触发事件。在Safari和Firefox中调整浏览器窗口大小无效。我没有在其他浏览器上尝试过。
有什么想法或解决方法吗?
由于某种原因,以下内容:
$(function() {
$(window).resize(function() {
alert("resized!");
});
});
仅当页面加载时才会触发事件。在Safari和Firefox中调整浏览器窗口大小无效。我没有在其他浏览器上尝试过。
有什么想法或解决方法吗?
我认为你的警报会导致问题,尝试使用这个替代方案
$(window).resize(function() {
$('body').prepend('<div>' + $(window).width() + '</div>');
});
最好避免附加到可能生成大量触发的事件,例如窗口调整大小和正文滚动,更好的方法是使用计时器并验证是否发生了事件,然后执行适当的操作,类似于以下内容:
$(function() {
var $window = $(window);
var width = $window.width();
var height = $window.height();
setInterval(function () {
if ((width != $window.width()) || (height != $window.height())) {
width = $window.width();
height = $window.height();
alert("resized!");
}
}, 300);
});
使用计时器进行操作的另一个优点是,您可以完全控制检查频率,这使得如果您需要考虑页面中的任何其他功能,可以灵活调整。
throttle
来避免过度处理。https://lodash.com/docs#throttle - Kris Ivanov在任何浏览器中都可运行:
http://jsbin.com/uyovu3/edit#preview
$(window).resize(function() {
$('body').prepend('<div>' + $(window).width() + '</div>');
});
五年后...
我遇到这个问题的唯一浏览器是Chrome,我没有使用Safari。
我注意到的模式是当我将代码内联时它可以工作:
<script type="text/javascript">
$(window).resize(function(e) { console.log("resize inline", +new Date()) });
</script>
但是,如果我将它放在一个单独的JavaScript文件中并使用以下方式加载,则不起作用:
<script type="text/javascript" src="/js/resized.js"></script>
脚本包含的位置
console.log('script loaded');
$(window).resize(function(e) { console.log("resize in script file", +new Date()) });
尝试
$(document).resize(function(){ ... };);
我认为是文档在各种浏览器中一致触发了resize事件。但是我现在不在工作岗位上,无法检查我通常做的事情。
试试这段代码。
window.addEventListener("resize", function(){
console.log('yeap worked for me!');
})
标准
$(window).bind("resize",function(){
console.log(window.innerWidth);
})
适用于WordPress
jQuery(window).bind("resize",function(){
console.log(window.innerWidth);
})
我曾经遇到同样的问题,看了各种解决方案都不起作用。
经过一些测试,我发现$(window).resize在我的情况下只有在$(document).ready()之前才会触发。而不是$(function())或$(window).ready()。
所以我的代码现在是:
$(document).ready(function(){
$(window).resize(function(){
// refresh variables
// Apply variables again
});
});
......甚至警报也能工作!