Reputation: 913
In my code i assign an integer value to myHTMLScrollBarEl.scrollTop
property and expect scroll event to fire. However when the value is equal to the existing one nothing happens.
How can i force scroll event to fire every time?
Upvotes: 1
Views: 1439
Reputation: 442
Using document.createEvent
plus event.initEvent
as described in the other answer is deprecated as stated here.
As of this page the preferred way to create and fire an event instance is now
var scrollEvent = new Event('scroll', {
bubbles: true,
cancelable: false,
composed: false,
});
myHTMLScrollBarEl.dispatchEvent(scrollEvent)
Upvotes: 0
Reputation: 11045
To trigger scroll event use $(window).scroll();
after your codes. Setting scroll position using the code does not triggers the scroll event itself.
for triggering scroll event using pure Javascript (reference):
function triggerEvent(el, type){
if ('createEvent' in document) {
// modern browsers, IE9+
var e = document.createEvent('HTMLEvents');
e.initEvent(type, false, true);
el.dispatchEvent(e);
} else {
// IE 8
var e = document.createEventObject();
e.eventType = type;
el.fireEvent('on'+e.eventType, e);
}
}
//An finally fire it
triggerEvent(window, 'scroll');
Upvotes: 2