为什么我不能在窗口元素中添加多个onresize实例?例如,只有第二个onresize事件(轮胎)将跟踪到日志:
var windowResize = {
fire : function(){ window.onresize = function(){ console.log('fire') }},
tire : function(){ window.onresize = function(){ console.log('tire') }}
}
windowResize.fire();
windowResize.tire();
答案 0 :(得分:3)
@ Hemant绝对正确。
纯javascript中的另一个版本的代码就是这个。
var windowResize = {
fire : function(){ window.addEventListener('resize', function(){console.log('fire');}, false);},
tire : function(){ window.addEventListener('resize', function(){console.log('tire');}, false);}
}
windowResize.fire();
windowResize.tire();
答案 1 :(得分:0)
这是因为DOM默认事件可以附加一个处理程序。当您第二次注册调整大小事件时,它会覆盖之前的值。
您可以使用jQuery或其他库来实现此目的,它们可以为特定事件保存一组处理程序,并在事件发生时将它们全部触发。
使用jquery就像
var windowResize = {
fire : function(){ $(window).resize( function(){ console.log('fire')});},
tire : function(){ $(window).resize (function(){ console.log('tire') });}
}
windowResize.fire();
windowResize.tire();
希望有所帮助
答案 2 :(得分:0)
根据W3C,您无法为同一事件处理程序设置更多功能。 您可以像这样使用jQuery:
$('#foo').bind('resize', function() {
console.log('fire');
console.log('tire');
});
我希望我有所帮助^ _ ^