e , e.target 和 tagName 分别是什么
例一:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
<dl id="test">
<dt>test</dt>
<dd><a href="http://www.baidu.com">test1</a></dd>
<dd><a href="http://www.baidu.com">test2</a></dd>
<dd><a href="http://www.baidu.com">test3</a></dd>
<dd><a href="http://www.baidu.com">test4</a></dd>
<dd><a href="http://www.baidu.com">test5</a></dd>
</dl>
<script type="text/javascript">
$('#test').click(function(e){
var itarget = $(e.target);
if (itarget[0].tagName=='A'){?
alert(itarget.html());
return false;
}
});?
</script>
说明:
e?是经过 jQuery 包装之后的事件对象,使用时我们不需要去考虑浏览器兼容性问题了。
e.target?取得的是事件发生的对象,即事件源,它是 DOM 对象。
tagName?是 DOM 对象的属性,用于获取 DOM 对象的标签名,取出来是大写的,你要取小写的用 nodeName。或者用toLowerCase()把tagName转换成小写之后再进行比较。
?
例二:
e.target的含义
$(function(){
????$("li:has(ul)").click(function(e){
????????if(this==e.target){
????????????$(this).children().toggle();
????????????$(this).css("list-style-image",($(this).children().is(":hidden")?"url(plus.gif)":"url(minus.gif)"))
????????}
????????return false;????//避免不必要的事件混绕
????}).css("cursor","pointer").click();????//加载时触发点击事件
???
????//对于没有子项的菜单,统一设置
????$("li:not(:has(ul))").css({
????????"cursor":"default",
????????"list-style-image":"none"
????});
});
===========================
具体问题具体分析;当前目标
在event事件中代表点击对象;
loader事件:加载对象;
e只是参数,任意取值;对应即可;
e.target 是目标对象,e.event是目标所发生的事件。