1

window 要素に onresize の複数のインスタンスを追加できないのはなぜですか? たとえば、2 番目の onresize イベント (タイヤ) のみがログにトレースされます。

var windowResize = {    
  fire : function(){ window.onresize = function(){ console.log('fire') }},
  tire : function(){ window.onresize = function(){ console.log('tire') }}
}
windowResize.fire();
windowResize.tire();
4

3 に答える 3

3

@ヘマントは絶対に正しいです。

純粋な 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();
于 2013-07-18T11:55:14.023 に答える
0

これは、DOM のデフォルト イベントに 1 つのハンドラを関連付けることができるためです。resize イベントを 2 回登録すると、以前の値が上書きされます。

これを実現するには、jQuery または他のライブラリを使用できます。これらは、特定のイベントのハンドラーの配列を保持し、イベントが発生したときにそれらすべてを起動できます。

jqueryを使用すると、次のようになります

var windowResize = {    
  fire : function(){ $(window).resize( function(){ console.log('fire')});},
  tire : function(){ $(window).resize (function(){ console.log('tire') });}
}
windowResize.fire();
windowResize.tire();

それが役に立てば幸い

于 2013-07-18T11:41:11.570 に答える