excel vba 工作表激活事件(excel函数公式大全)
603
2022-05-30
DOM入门
DOM就是Html页面的模型,将每个标签都做为一个对象,javaScript通过调用DOM中的属性、方法就可以对网页中的文本框、层等元素进行编程控制。比如通过操作文本框的DOM对象,就可以读取文本框中的值、设置文本框中的值。 JavaScript→DOM就是C#→ADO.NET。DOM就是一些让JavaScript能操作Html页面控件的类、函数。
DOM也像WinForm一样,通过事件、属性、方法进行编程。
CSS+JavaScript+DOM=DHtml
DOM模型
事件
在DOM中有很多事件。演示:
//注意body的范围。Body的范围就是body里内容的范围,如果没有内容,就无法触发事件。有时事件的响应代码比较多,就要放到一个函数中:
function userMouseDown() {
alert('网页被你点坏了>_<~~,赔吧!');
alert('逗你玩呢~~');
}
注:οnmοusedοwn=“userMouseDown();”中,userMouseDown后的括号不能丢(不能写成οnmοusedοwn=“userMouseDown” ),带()表示调用函数,直接写函数名表示设置事件的处理函数为userMouseDown。可以这样说吧,onclick后会触发一个方法,
οnclick=f1;的意思就是说onclick触发的方法就是f1.
οnclick=“f1()”的意思就是说onclick触发的方法里调用了f1
οnclick=事件引发后的处理程序。
οnclick=" f(this); "; //在onclick的事件处理程序中调用了f()方法
οnclick=f;//该事件的处理程序就是f()方法。
动态设置事件
JavaScript也可以像.Net中那样动态设置事件,Button.Click+=…
function F1() { alert('In F1'); }
function F2() { alert('In F2'); }
注意: οnclick=“document.οnclick=F1;” 此处的F1不要加括号,加括号就编程了调用F1()函数,并且把返回值赋值给document.onclick了。
document.body.onclick范围仅限于body
document.onclick范围为整个文档。
事件冒泡
事件冒泡:如果元素A嵌套在元素B中,那么A被点击不仅A的onclick事件会被触发,B的onclick也会被触发。触发的顺序是“由内而外” 。验证:在页面上添加一个table、table里有tr、tr里有td,td里放一个p,在p、td、tr、table中添加onclick事件响应,例:
aaaa | bbb |
取消事件冒泡: window.event.cancelBubble = true;//IE下的写法。
aaaa | bbb |
window.onload与body的onload
1.二者效果完全一样,都是在页面内容都加载完毕后才触发。
2.由于网页中没有window所以在body中写onload
3.建议使用window.onload//使用js脚本的方式高效
4.其实应该是document.onload,但是所有浏览器都实现到了window对象上。
事件中的this
事件中的this。除了可以使用event.srcElement在事件响应函数中,this表示
发生事件
的控件。只有在事件响应函数才能使用this获得发生事件的控件,在事件响应函数调用的函数中不能使用(这里的this表示window对象),如果要使用则要将this传递给函数或者使用event.srcElement,例:
function f3() {
alert(event.srcElement.value);
}
function f4() {
//事件的调用函数中this 代表window对象
alert(this.location.href);
alert(this.value);
}
window.onload = function () {
btn5.onclick = function () {
alert(event.srcElement.value);
}
btn6.onclick = function () {
//在事件响应函数中 this代表当前触发事件的对象
alert(this.value);
}
}
(*)this和event.srcElement的语义是不一样的,this就是表示当前监听事件的这个对象,event.srcElement是引发事件的对象:事件冒泡,例:
aaaa | bbb |
aaaa | bbb |
JavaScript
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。