Repository navigation
Expand file tree
/
Copy path11_Events.js
More file actions
103 lines (98 loc) · 3.26 KB
/
Copy path11_Events.js
File metadata and controls
103 lines (98 loc) · 3.26 KB
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
// basic event listner nad events object
document.getElementById("btn").addEventListener("click",(e)=>{
console.log(e);
});
//2. e.type
document.getElementById("btn").addEventListener("click",(e)=>{
console.log(e.type);
});
//3. e.timestamp
document.getElementById("btn").addEventListener("click" , (e)=>{
console.log(e.timeStamp);
});
//4. e.target
document.getElementById("parent").addEventListener("click",(e)=>{
console.log("target",e.target);
});
//5. e.currenttarget
document.getElementById("parent").addEventListener("click",(e)=>{
console.log("current target",e.currentTarget);
});
//6. differnce between target and current target
document.getElementById("parent").addEventListener("click",(e)=>{
console.log("target",e.target.tagName);
console.log("cuurent target",e.currentTarget.tagName);
});
//7. prevent default on click
document.getElementById("mylink").addEventListener("click",(e)=>{
e.preventDefault();
console.log("link nevigation prevented ");
});
//8. prevent default on submit
document.getElementById("myform").addEventListener("click",(e)=>{
e.preventDefault();
console.log(e.defaultPrevented);
});
//9. defaultprevented (true case)
document.getElementById("mylink").addEventListener("click",(e)=>{
console.log(e.defaultPrevented);// false unless prevented above
});
//10. bubbling
document.getElementById("parent").addEventListener("click",()=>{
console.log("parent clicked");
});
document.getElementById("parent").addEventListener("click",()=>{
console.log("child clicked");
})
//11. perpogetion
document.getElementById("child").addEventListener("click",(e)=>{
e.stopPropagation();
console.log(" stop propogestion ");
});
//12. capturing [phases]
document.getElementById("parent").addEventListener("click",(e)=>{
console.log(" parent capture");
},true);
document.getElementById("child").addEventListener("click",()=>{
console.log("child capture")
})
//13.stopImmidiatePropegation
document.getElementById("btn").addEventListener("click",(e)=>{
e.stopImmediatePropagation();
console.log("this is listner run ");
});
document.getElementById("btn").addEventListener("click",()=>{
console.log("this will not run");
})
// 14. enevt deligation
document.getElementById("list").addEventListener("click",(e)=>{
if(e.target.tagName == "li"){
console.log("list item cliccked",e.target.textContent);
}
});
//15. target with nested element
document.getElementById("parent").addEventListener("click",(e=>{
console.log(e.target);
}));
//16.multiple event types
["click","mouseover","keydown"].forEach((evt)=>{
document.getElementById("btn").addEventListener(evt,(e)=>{
console.log(e.type);
});
});
//17.cpustum event
const myEvent = new CustomEvent("myEvent",{detail:{msg:"hellow"}});
document.dispatchEvent(myEvent);
//18.timestamp gap between clicks
let lastClick = 0;
document.getElementById("btn").addEventListener("click",(e)=>{
console.log("gap:",e.timeStamp-lastClick,"ms");
lastClick = e.timeStamp;
});
//20. All concepts togather
document.getElementById("parent").addEventListener("click",(e)=>{
console.log("type",e.type);
console.log("target",e.target);
console.log("cuurent target", e.currentTarget);
console.log("default prevented ",e.defaultPrevented);
});