标签:好的 应用 box 最好 target 上进 允许 rem 开始
If else
Switch
三元运算符
(condition) ? run this code : run this code instead
For循环
Break跳出循环
Continue跳出当前循环,继续下一循环
函数:重用代码块
匿名函数
1与事件绑定(匿名函数的主要作用)
2指定其为变量值(var a = function(){})但是最好不要用这种方式,最好的还是function a (){}
作用域与冲突
函数内定义的变量只在函数内起作用,即作用域是函数
思考创建函数库的想法。随着你进一步进入你的编程生涯,你将开始一再做同样的事情。开始保持自己常用的实用程序函数库是一个好主意 - 然后可以将它们复制到新的代码中,甚至可以将其应用到任何需要它的HTML页面。
事件
不是js语言的一部分,只是浏览器内置jsAPI的一部分
绑定属性不要在html里面内联绑定
(DOM2级中定义)
el.onclick=functionA
el.onclick=functionB
和
el.addEventListener(‘click’,A);
el.addEventListener(‘click’,A);
这两种方式:
第一种的函数A不会执行,会被overwrite掉(相当于给el添加事件属性),不灵活
但第一种兼容性更好
而第二种,两个函数都会执行,很灵活,可移除
兼容性不好(所以有必要写一个封装好的函数放在自己函数库里)
事件对象
e.target引起事件的对象
e.preventDefault()阻止默认事件
form.onsubmit = function(e) {
if (fname.value === ‘‘ || lname.value === ‘‘) {
e.preventDefault();
para.textContent = ‘You need to fill in both names!‘;
}
}
事件冒泡 捕获
事件冒泡和捕获是描述在一个元素上激活相同事件类型的两个处理程序时会发生什么的两种机制。
videoBox.onclick = function() {
videoBox.setAttribute(‘class‘, ‘hidden‘);
};
video.onclick = function() {
video.play();
};
冒泡和捕捉解释
当一个事件被一个有父元素的元素触发(例如<video>我们的例子)时,现代浏览器运行两个不同的阶段 - 捕获阶段和冒泡阶段。在捕获阶段:
在冒泡阶段,恰恰相反:
在现代浏览器中,默认情况下,所有事件处理程序都注册在冒泡阶段。所以在我们当前的例子中,当你点击视频时,点击事件从<video>元素向外的气泡到<html>元素。一路上:
这是令人讨厌的行为,但有一种方法来解决它!标准事件对象有一个可用的函数stopPropagation(),当在处理程序的事件对象上调用它使得处理程序运行时,但事件不会在链上进一步发生,所以不会再运行更多的处理程序。
因此,我们可以通过将上一个代码块中的第二个处理程序函数改为此来解决我们当前的问题:
video.onclick = function(e) {
e.stopPropagation();
video.play();
};
冒泡也允许我们利用事件委托 - 这个概念依赖于一个事实,如果你想要在大量子元素上运行一些代码,当你点击其中任何一个子元素,你可以给他们的父元素设置事件监听器,那么事件监听器会把影响冒泡给每个子元素,而不必单独设置每个孩子的事件监听器。
一个很好的例子是一系列的列表项目 - 如果您希望每个列表项都可以在单击时弹出消息,您可以在父<ul>项上设置click事件监听器,并将它们冒泡到列表项。
MDN——javascript——入门——第二章——知识点总结
标签:好的 应用 box 最好 target 上进 允许 rem 开始
原文地址:http://www.cnblogs.com/Nirvana-zsy/p/7128549.html