1.在javascript中利用如下方式添加事件:
var tsd = document.getElementById("testDiv4");
tsd.onclick = function(){
alert("a");
};
tsd.onclick = function(){
alert("b");
};
在第二次添加后会覆盖之前定义的onclick,也就是只会弹出b,但是可以通过添加事件多播委托的方法来实现不覆盖,如:
if( tsd .addEventListener )//for dom
{
tsd .addEventListener( “click”, fnHandler, false )
}
else if( tsd.attachEvent )//for ie
{
tsd .attachEvent( "onclick", fnHandler);
}
这样就比较麻烦要区分不同的浏览器
利用jquery就简单多了,直接用bind方法来添加事件处理,如:
$("#testDiv4").bind("click", function(event) { alert("one"); });
$("#testDiv4").bind("click", function(event) { alert("two"); });
这样就不会覆盖,会一次弹出one,two
2.可以在html标签中编写自定义属性,通过javascript的getAttribute获取或者通过jquery的attr方法获取:
<div id="testDiv5" customer="customer data 1">
获取自定义数据
</div>
$("#testDiv5").bind("click",function(event){
//alert(event.target.getAttribute("customer"));
alert($(event.target).attr("customer"));
});
或者:
$("#testDiv5").bind("click",{custom: "this is custom data"},function(event){
alert(event.data.custom);
});