2016-08-30 3 views
4

Я пытаюсь вызвать событие изменения размера, используя простой js для целей тестирования, но window.resizeTo() и window.resizeBy() не запускают событие в соответствии с современными браузерами, чтобы предотвратить эти действия. Я пробовал jquery $(window).trigger('resize');, но он работает только для событий, прикрепленных через jquery, например $(window).on('resize', handler);. однако в моем случае проект, над которым я работаю, использует простой javascript.Как вызвать событие изменения размера окна с помощью ванильного 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

Вы, скорее всего, получать downvoted как люди будут видеть его as a duplicate, однако из you might not need jquery website:

IE9 +

Trigger родной

// 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); 

Trigger обычая

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

Для людей, желающих вызвать событие изменения размера, используйте 'resize', а не' change' в вызове 'initEvent'. –

+0

спасибо. обновил мой ответ – bitten

+1

Откуда появился «эл»? – dshukertjr

Смежные вопросы