昨天寫聊天室用到nodejs的event模塊,今天也用JavaScript前端的 event寫一個,通過一次觸發(fā),全局響應(yīng),接下來做單頁應(yīng)用,嘗試不以傳統(tǒng)方式進(jìn)行事件處理,改為以自定義event進(jìn)行處理,看看對傳統(tǒng)單頁應(yīng)用的與我的想法在實際實施上有什么區(qū)別和影響。
<!DOCTYPE html> <html> <head lang="zh-CN"> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title></title> </head> <body> <input id="bu1" type="button" value="點我"> <script> //自定義test1事件 var ev1 = new Event('t1', {bubbles: 'true', cancelable: 'true'});
ev1.aaa='ev1'; //創(chuàng)建event的對象實例。 var ev2 = document.createEvent('HTMLEvents'); // 3個參數(shù):事件類型,是否冒泡,是否阻止瀏覽器的默認(rèn)行為 ev2.initEvent('t2', true, true);
ev2.aaa = 'ev2';
document.getElementById("bu1").addEventListener('click', function () { document.dispatchEvent(ev1);
document.dispatchEvent(ev2);
}, false);
(function () { document.addEventListener('t1', function (e) { console.log(e.aaa+1);
}, false); //document上綁定自定義事件oneating document.addEventListener('t2', function (e) { console.log(e.aaa+2);
}, false);
})();
(function () { document.addEventListener('t1', function (e) { console.log(e.aaa+3);
}, false); //document上綁定自定義事件oneating document.addEventListener('t2', function (e) { console.log(e.aaa+4);
}, false);
})();
(function () { document.addEventListener('t1', function (e) { console.log(e.aaa+5);
}, false); //document上綁定自定義事件oneating document.addEventListener('t2', function (e) { console.log(e.aaa+6);
}, false);
})(); </script> </body> </html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57