js 委托事件的实现
2014-04-21 14:15
393 查看
测试代码
测试结果:[b]使用事件委托方式性能要高的多[/b]
<div id="test_id">
<a href="#" id="11">111111</a>
<a href="#" id="22">222222</a>
<a href="#" id="33">333333</a>
<a href="#" id="44">444444</a>
<a href="#" id="55">555555</a>
<a href="#" id="66">666666</a>
<a href="#" id="77">777777</a>
</div>
1、jquery实现:
$("#test_id").delegate("a", "click", function(event){
var event = event || window.event;
$("#test_id").find("a").each(function(){
$(this).removeClass("current");
});
$(event.target).addClass("current");
});
2、js实现:
var obj = document.getElementByIdx_x("test_id");
obj.addEventListener("click", function(event){
var event = event || window.event;
for(var i=0; i<this.childNodes.length; i++){
if(this.childNodes[i].nodeName.toLowerCase() == 'a'){
this.childNodes[i].className = '';
}
}
var curElem = event.target;
if(curElem.nodeName.toLowerCase() == "a"){
curElem.className = "current";
}
});
原文链接:http://www.cnblogs.com/xqhppt/archive/2011/12/07/2279037.html
<div id="test_id">
<a href="#" id="11">111111</a>
<a href="#" id="22">222222</a>
<a href="#" id="33">333333</a>
<a href="#" id="44">444444</a>
<a href="#" id="55">555555</a>
<a href="#" id="66">666666</a>
<a href="#" id="77">777777</a>
</div>
1、jquery实现:
$("#test_id").delegate("a", "click", function(event){
var event = event || window.event;
$("#test_id").find("a").each(function(){
$(this).removeClass("current");
});
$(event.target).addClass("current");
});
2、js实现:
var obj = document.getElementByIdx_x("test_id");
obj.addEventListener("click", function(event){
var event = event || window.event;
for(var i=0; i<this.childNodes.length; i++){
if(this.childNodes[i].nodeName.toLowerCase() == 'a'){
this.childNodes[i].className = '';
}
}
var curElem = event.target;
if(curElem.nodeName.toLowerCase() == "a"){
curElem.className = "current";
}
});
原文链接:http://www.cnblogs.com/xqhppt/archive/2011/12/07/2279037.html
相关文章推荐
- 1.事件委托的原理以及优缺点 2. 手写原生js实现事件代理,并要求兼容浏览器
- js原生事件委托的实现
- 事件委托(js实现)
- 利用自定义属性实现js点击事件 委托
- JS实现为动态添加的元素增加事件功能示例【基于事件委托】
- JS中的onload事件和jQuery中的ready事件,如何用JS实现jQuery中的ready
- 对于原生js中的事件委托解析
- 【javascript】js事件委托
- js中的事件委托
- js学习心得之js的自定义事件-基于观察者模式的实现
- 通过原生JS实现为元素添加事件
- 通用JS事件写法实现代码
- js动态添加事件-事件委托
- js阻止浏览器的默认行为以及停止事件冒泡(用JQuery实现回车提交,兼容IE、FF浏览器)
- js事件代理(委托)
- js事件之点击不同按钮固定位置实现内容切换
- js中的事件委托
- WebView 实现JS效果和a标签的点击事件
- js 基础篇必看(点击事件轮播图的简单实现)
- js中的事件委托技术