南大软院大神养成计划——第十天

今天是南大软院大神养成计划实施的第十天。今天主要学习了“DOM事件探秘”。

首先说说第一章“事件流”,那什么是事件流呢?事件流就是描述描述从页面中接受事件的顺序,在浏览器中,IE和Netscape提出了相反的慨念,IE提出的是事件冒泡流,就是我们现在常用的事件流,Netscape提出的事件捕获流。首先说说事件冒泡流,事件冒泡流就是即事件最开始由最具体的无素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播到最不具体的那个节点(文档) input----->document,比如我在input里设置一个按钮关联一个事件,那么它就会从input开始逐级向上传播,比如像div传播。而事件捕获流呢?就是相反地了,它的思想是不太具体的节点应该更早接收到元素,而最具体的节点最后接收到事件。比如从html往下面开始传播,然后最后传播到input中,很多人并不知道有时间捕获流。

接下来是第二章“事件处理程序”,事件处理程序大致分为“HTML事件处理程序”,“DOM0级事件处理程序”,“DOM2级事件处理程序”。先说说“HTML事件处理程序”。HMTL事件处理程序就是直接把JavaScript代码嵌入到HTML代码中,这个方法的最大缺点就是HTML和js代码高耦合,如果修改,就要修改两个地方:HTML元素内和script函数,增加程序员工作量。“DOM0级事件处理程“就是先 把元素取出来,然后为其属性添加一个事件,它是一种较传统的方式:把一个函数赋值给一个事件处理程序的属性,优点:简单,跨浏览器的优势。比如:var btn2=document.getElementById("btn2");---先获取出元素,定义对象 //取得btn2按钮对象
btn2.οnclick=function(){alert('这是通过DOM0级添加的事件!')}----让 事件以对象的属性 的形式出现。 //给btn2添加onclick属性

这样程序员假如想改动JavaScript部分只需要改动一个地方就行,不需要改动html部分,减少了耦合性。

下面说说DOM2级事件处理程序。DOM2和DOM0级共同优点:可以给一个元素上添加多个事件处理程序,会按照顺序执行。<br><br>
DOM2级事件处理程序,ie不支持,ie有专用的事件处理程序。<br><br>
DOM2级事件处理程序:定义了两个方法---用于处理指定和删除事件处理程序的操作。【addEventListener()---给某元素添加一个事件监听程序】和【removeEventListener()---删除一个事件。必须传入添加事件时相同的参数】(通过前者添加的事件,只能通过后者删除。如obj.click= null无效)<br><br>
接收三个参数:要处理的事件名,作为事件处理程序的函数和布尔值。<br>
布尔值 false 事件冒泡 true 事件捕获,一般用false最大兼容浏览器。
在事件被触发的函数里面this可以引用被触发的元素。例如:btn.addEventListener('click',function(){alert(this.value),false});this即指btn

接下来讲讲IE事件程序及跨浏览器解决。如何解决这个问题呢?代码如下:

var eventUtil={
// 添加句柄
type==触发的元素事件,此处的时间名最好没有on前缀; handler==触发事件时调用函数
addHandler:function(element,type,handler){ 
if(element.addEventListener){ //能力检测
element.addEventListener(type,handler,false);
}else if(element.attachEvent){
element.attachEvent('on'+type,handler); //IE中attachEvent()事件名都要有on前缀
}else{
element['on'+type]=handler; //element.οnclick==element[‘onclick’]
}
},
}

非IE addEventListener removeEventListener (追加事件不需要on)
IE(opera) attachEvent detachEvent(追加事件需要on),attachEvent只有两个参数

今天学习就这么多,期待明天的是学习

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 南大软院机试是指南京大学软件学院进行的选拔性考试,主要用于选拔优秀的计算机科学与技术专业学生。而CSDN是中国最大的IT技术社区和知识服务平台,提供大量的技术博客、问答、培训等服务。 南大软院机试的题目通常包括计算机基础知识、编程能力、数据结构与算法等内容。通过机试,南大软院可以了解考生的基础知识水平、动手能力和解决问题的能力,从而选拔出最优秀的学生。 而CSDN作为一个IT技术社区,为计算机科学与技术专业的学生和从业者提供了一个优质的学习和交流平台。在CSDN上,可以浏览到大量的技术博客,以及相关技术问题的解决方案。通过参与CSDN,学生们能够及时了解最新的技术动态和行业发展趋势,提升自己的技术实力。 因此,南大软院机试和CSDN都在不同层面上为计算机科学与技术专业的学生提供了有益的机会和资源。通过参加南大软院机试,学生们有机会进一步提升自己的编程和解决问题的能力,从而在未来的学习和工作中更加出色。而通过参与CSDN,学生们可以在该平台上获取到丰富的技术资源,并与其他志同道合的人进行交流和学习,以更好地提升自己的专业水平。 ### 回答2: 南京大学软件学院机试是指南京大学软件学院举办的面向计算机科学与技术专业的机器编程实践能力考试。在这场机试中,考生需要完成一系列的编程题目,以展示他们的编程能力和解决问题的能力。 南京大学软件学院的机试一般分为两个部分:编程题和理论题。编程题部分会考察考生在数据结构、算法和编程语言等方面的知识,要求考生用编程语言解决一定的问题,例如实现某个算法或数据结构,或者完成一道编程题目。理论题部分则考察考生对计算机科学基础知识的掌握程度,包括计算机网络、操作系统、数据库等。 南京大学软件学院举办机试的目的是为了选拔具有较强编程能力和解决实际问题能力的学生,以便保证学院培养出的学生具备扎实的专业知识和实践能力。机试成绩在考生的综合素质评定中占有重要的比重,对考生的录取结果有着直接的影响。 参加南京大学软件学院机试的考生应该具备良好的计算机编程基础知识,对数据结构和算法有深入的理解,同时还需要具备良好的解决问题和编程能力。对于准备参加机试的考生来说,平时要多进行编程练习,多从理论和实践两方面进行复习。 总之,南京大学软件学院机试是一个重要的考核环节,对考生的编程实践能力和解决问题的能力进行了全面的评估。参加机试的考生应该充分准备,以取得良好的成绩。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值