jQuery判断获取元素的类型 父元素的click事件集中管理子元素的click

$(document).click( function (event){
     var  src_element_id = $(event.srcElement || event.target).attr( "id" );
    //没点击一次就获取当前元素ID
    // event.srcElement || event.target  代表的原生JS对象,获取ID,使用(event.srcElement || event.target).id
    
    if (src_element_id == "camnpr"  && src_element_id ==  "kuabaobao" ){  //筛选指定ID下的内容,有执行事件的权限
       //do something
    }
// or ....
if  (src_element_id.is( "a" ) ) {  //使用jQuery中的 is 函数来判断元素的类型
     src_element_id.css( "background-color" "red" );
}
    
});

使用原生JS的方法是:var obj = document.getElementById("camnpr");
alert(obj.type);    alert(obj.nodeType);
nodeName、nodeValue 以及 nodeType 包含有关于节点的信息

题外话:
先来看个例子:
1
2
3
4
$( "#camnpr" ).click( function (e){...});
$( "#kuabaobao" ).click( function (e){...});
$( "#raodaor" ).click( function (e){...});
...

这样要绑定N个事件到N个元素上,本身创建事件,是保存到内存中的,事件越多,内存占有的就多;另一方面,多个事件不集中,管理也不方便。 如果就上边的给document定义一个事件,那么,多个元素的click,就创建了一次事件,节约了开销,也便于统一管理了。  

自然,不必一定只是document,只要是给多个元素的父元素定义,都是可以的。
相关详细介绍,可以参考 《Javascript高级程序设计》一书中的12章:12.5 内存和性能 328
查看原文: http://www.camnpr.com/archives/606.html

你可能感兴趣的:(jquery,内存,click,camnpr,kuabaobao,raodaor)