javascript 浏览器兼容性事件开发经验总结
简单事件模型和高级事件模型简单事件,就是事件与页面元素直观的绑定在一起的形式,如:
element.onclick = function(){alert(this.innerHTML);}
只要不是用了个别浏览器独有的事件,一般的click,mouseover事件等在各浏览器中都可以这么使用。
但是当一个事件需要绑定多个监听,或者需要动态注册/移出监听时,简单事件模型就不够用了,需要使用高级事件模型(IE和其他浏览器在使用高级事件模型时就有区别了):
//注册
function addEventHandler(element, evtName, callback, useCapture) {
//DOM标准
if (element.addEventListener) {
element.addEventListener(evtName, callback, useCapture);
} else {
//IE方式,忽略useCapture参数
element.attachEvent('on' + evtName, callback);
}
}
//移除
function removeEventHandler(element, evtName, callback, useCapture) {
//DOM标准
if (element.removeEventListener) {
element.removeEventListener(evtName, callback, useCapture);
} else {
//IE方式,忽略useCapture参数
element.dettachEvent('on' + evtName, callback);
}
}
标签中onclick事件与href属性的调用顺序关系
在a标签响应点击事件时,会先进行onclick事件的响应,再执行href中的跳转方法。如以下标签点击后会先后提示“button”和“href”:
button
但是,最好不要在href中定义具体的javascript方法,因为这个是定义跳转的链接地址的属性,如果需要先后执行两个javascript方法,应该这样写:
button
但是上面的写法中如果onclick绑定的响应方法中并没有提交请求跳转至别的页面,那么会发现当前网页做了一次刷新,因为以上代码中href=“#”表示跳转到当前页的顶部,但是并没有发出新的html请求。有的时候,我们并不希望页面在响应onclick事件后又跳回顶部(尤其是页面高度较长,出现滚动条,并且该链接位于页面底部时,跳转至顶部后用户还需要拖动滚动条找回原来位置继续操作时),那么应该在onclick后返回false值,阻止继续进行href定义的动作,如:
button
或者将#替换成空的javascript语句:
button
onload事件的调用顺序
有的时候在页面初始化时需要调用一些脚本来设置页面元素的初始状态,最标准的做法是用
方式或者document.onload方式调用。onload的事件的触发会在页面元素渲染完毕之后调用,这样就保证了不会出现脚本执行时找不到未渲染的页面元素的情况。如果是在区域的
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
上一篇: 实现无刷新下拉联动的Ajax+Servlet(附代码)
下一篇: PHP改一个循环遍历。
推荐阅读
-
(跨浏览器基础事件/浏览器检测/判断浏览器)经验代码分享_javascript技巧
-
javascript - 怎么实现微软edge浏览器兼容性提示?
-
js中事件的处理与浏览器对象示例介绍_javascript技巧
-
一份老外写的XMLHttpRequest代码多浏览器支持兼容性_javascript技巧
-
HTML 5 标签、属性、事件及浏览器兼容性速查表 附打包下载
-
HTML 5 标签、属性、事件及浏览器兼容性速查表 附打包下载
-
JavaScript中的跨浏览器事件操作的基本方法整理
-
javascript阻止事件冒泡和浏览器的默认行为
-
javascript 运行机制 事件循环 浏览器缓存
-
JavaScript开发中如何利用浏览器全屏api实现js全屏