diff --git a/src/custom-event-polyfill.ts b/src/custom-event-polyfill.ts new file mode 100644 index 0000000..f19cbb8 --- /dev/null +++ b/src/custom-event-polyfill.ts @@ -0,0 +1,9 @@ +export function CustomEvent ( type, params = { bubbles: false, cancelable: false, detail: undefined } ) { + var event = document.createEvent( 'CustomEvent' ); + event.initCustomEvent( type, params.bubbles, params.cancelable, params.detail ); + return event; +} +if ("Event" in window) { + CustomEvent.prototype = (window as any).Event.prototype; +} + diff --git a/src/materialize-directive.ts b/src/materialize-directive.ts index b71345e..43a1041 100644 --- a/src/materialize-directive.ts +++ b/src/materialize-directive.ts @@ -7,6 +7,7 @@ import { OnDestroy, AfterViewInit } from '@angular/core'; +import {CustomEvent} from "./custom-event-polyfill" declare var $:any; declare var Materialize:any; @@ -109,7 +110,9 @@ export class MaterializeDirective implements AfterViewInit,DoCheck,OnChanges,OnD const enablebtns = this.enableDPButtons; jQueryElement[this._functionName](...this._params); - jQueryElement.on("change", e => nativeElement.dispatchEvent(new Event("input"))); + jQueryElement.on("change", e => nativeElement.dispatchEvent(new CustomEvent("input"))); + //jQueryElement.on("change", e => nativeElement.dispatchEvent(new Event("input"))); + // jQueryElement.on("change", e => dispatchEventOnTarget(nativeElement,"input")); const datePickerPopUp = jQueryElement.siblings(".picker").first(); @@ -191,3 +194,14 @@ export class MaterializeDirective implements AfterViewInit,DoCheck,OnChanges,OnD $('.picker__select--month').removeAttr("disabled"); } } + +/*function dispatchEventOnTarget(target, eventType) { + let event; + try { + event = new Event(eventType); + } catch (e) { + event = document.createEvent('HTMLEvents'); + event.initEvent(eventType, true, true); + } + target.dispatchEvent(event); +};*/ \ No newline at end of file