2016-08-30 16 views
4

私は、テスト目的のためにプレーンjsを使用してサイズ変更イベントをトリガーしようとしていますが、現代のブラウザによれば、window.resizeTo()window.resizeBy()はイベントをトリガーしません。私はjquery $(window).trigger('resize');を試しましたが、$(window).on('resize', handler);のようなjqueryで接続されたイベントに対してのみ動作します。しかし、私の場合、私が取り組んでいるプロジェクトではプレーンなjavascriptを使用しています。バニラジャバスクリプトを使用してウィンドウのサイズ変更イベントをトリガーするにはどうすればよいですか?

window.addEventListener('resize', function(){ 
    console.log('window has been resized !'); 
}); 

// or even using global onresize 
window.onresize = function() { 
    console.log('window has been resized!'); 
}; 
+0

イベントリスナーが名前付きの関数である場合、その関数を直接呼び出すことができます( 'event'オブジェクトを使う必要がないものと仮定します)。 – nnnnnn

答えて

9

人々はas a duplicateそれを見るようにあなたが最も可能性が高いしかしyou might not need jquery websiteから、downvotedなっている:

IE9 +

トリガーネイティブ

// For a full list of event types: https://developer.mozilla.org/en-US/docs/Web/API/document.createEvent 
var event = document.createEvent('HTMLEvents'); 
event.initEvent('resize', true, false); 
el.dispatchEvent(event); 

トリガーカスタム

if (window.CustomEvent) { 
    var event = new CustomEvent('my-event', {detail: {some: 'data'}}); 
} else { 
    var event = document.createEvent('CustomEvent'); 
    event.initCustomEvent('my-event', true, true, {some: 'data'}); 
} 

el.dispatchEvent(event); 
+0

サイズ変更イベントをトリガーする人は、 'initEvent'の呼び出しで' change'ではなく 'resize'を使用してください。ありがとう、 –

+0

更新私の答え – bitten

+1

"エル"はどこから来たのですか? – dshukertjr

関連する問題