clickobserver.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /**
  2. * @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
  3. * For licensing, see LICENSE.md.
  4. */
  5. /* globals console:false, document */
  6. import Document from '/ckeditor5/engine/view/document.js';
  7. import DomEventObserver from '/ckeditor5/engine/view/observer/domeventobserver.js';
  8. const viewDocument = new Document();
  9. let observer1, observer2;
  10. class ClickObserver1 extends DomEventObserver {
  11. constructor( viewDocument ) {
  12. super( viewDocument );
  13. this.id = 1;
  14. this.domEventType = 'click';
  15. observer1 = this;
  16. }
  17. onDomEvent( domEvt ) {
  18. this.fire( 'click', this.id, domEvt.target.id );
  19. }
  20. }
  21. class ClickObserver2 extends DomEventObserver {
  22. constructor( viewDocument ) {
  23. super( viewDocument );
  24. this.id = 2;
  25. this.domEventType = 'click';
  26. observer2 = this;
  27. }
  28. onDomEvent( domEvt ) {
  29. this.fire( 'click', this.id, domEvt.target.id );
  30. }
  31. }
  32. viewDocument.on( 'click', ( evt, eventId, elementId ) => console.log( 'click', eventId, elementId ) );
  33. document.getElementById( 'enable1' ).addEventListener( 'click', () => observer1.enable() );
  34. document.getElementById( 'disable1' ).addEventListener( 'click', () => observer1.disable() );
  35. // Random order.
  36. viewDocument.addObserver( ClickObserver1 );
  37. viewDocument.createRoot( document.getElementById( 'clickerA' ), 'clickerA' );
  38. viewDocument.addObserver( ClickObserver2 );
  39. viewDocument.createRoot( document.getElementById( 'clickerB' ), 'clickerB' );