这个JS事件监听器不起作用了,怎么回事呢?
以下代码在上一个项目中用来监控 keydown 事件是有效的,为何改为监听 resize 就不行了呢?
$(function(){
//~~~~~~~~~~~~~~~~~~~~~ 窗体变化
if(document.addEventListener){
document.addEventListener("resize",resizeHandler,true);
}else{
document.attachEvent("onresize",resizeHandler);
}
});
function resizeHandler(event)
{
alert("重置尺寸事件"); //这语句没有执行到
var e = event || window.event;
//阻止冒泡
if(e.preventDefault) e.preventDefault();
else e.returnValue = false;
if(e.stopPropagation) e.stopPropagation();
else e.cancelBubble = true;
}
------解决方案--------------------$(function(){
//~~~~~~~~~~~~~~~~~~~~~ 窗体变化
if(document.addEventListener){
window.addEventListener("resize",resizeHandler,true);
}else{
window.attachEvent("onresize",resizeHandler);
}
});
function resizeHandler(event)
{
alert("重置尺寸事件"); //这语句没有执行到
var e = event || window.event;
//阻止冒泡
if(e.preventDefault) e.preventDefault();
else e.returnValue = false;
if(e.stopPropagation) e.stopPropagation();
else e.cancelBubble = true;
}
但不知道为什么事件被激发两次,阻止冒泡不管用!
------解决方案--------------------有些是window下的
最好监听window和document的resize
------解决方案--------------------function init(){
//~~~~~~~~~~~~~~~~~~~~~ 窗体变化
if(document.addEventListener){
window.addEventListener("resize",resizeHandler,true);
}else{
window.attachEvent("onresize",resizeHandler);
}
}
function resizeHandler(event)
{
alert("重置尺寸事件"); //这语句没有执行到
var e = event || window.event;
if(e.preventDefault) e.preventDefault();
else e.returnValue = false;
if(e.stopPropagation) e.stopPropagation();
else e.cancelBubble = true;
}
</script>
</head>
<body onload="init()">
<img src="">
</body>
这样试试 ie可以 其他的都不行