जहां संभव हो, मैं किसी घटना को भेजने के बजाय फ़ंक्शन को कॉल करना पसंद करता हूं। यदि आप जिस कोड को चलाना चाहते हैं, उस पर नियंत्रण होने पर यह अच्छी तरह से काम करता है, लेकिन उन मामलों के लिए नीचे देखें जहां आपके पास कोड नहीं है।
window.onresize = doALoadOfStuff;
function doALoadOfStuff() {
//do a load of stuff
}
इस उदाहरण में, आप doALoadOfStuff
किसी ईवेंट को भेजे बिना फ़ंक्शन को कॉल कर सकते हैं ।
अपने आधुनिक ब्राउज़रों में, आप ईवेंट का उपयोग करके ट्रिगर कर सकते हैं :
window.dispatchEvent(new Event('resize'));
यह Internet Explorer में काम नहीं करता है, जहाँ आपको longhand करना होगा:
var resizeEvent = window.document.createEvent('UIEvents');
resizeEvent.initUIEvent('resize', true, false, window, 0);
window.dispatchEvent(resizeEvent);
jQuery की trigger
विधि है , जो इस तरह काम करती है:
$(window).trigger('resize');
और चेतावनी है:
यद्यपि .trigger () एक घटना सक्रियण का अनुकरण करता है, जो एक संश्लेषित घटना ऑब्जेक्ट के साथ पूरा होता है, यह पूरी तरह से एक स्वाभाविक रूप से घटने वाली घटना को दोहराता नहीं है।
आप किसी विशिष्ट तत्व की घटनाओं का अनुकरण भी कर सकते हैं ...
function simulateClick(id) {
var event = new MouseEvent('click', {
'view': window,
'bubbles': true,
'cancelable': true
});
var elem = document.getElementById(id);
return elem.dispatchEvent(event);
}