例一:
<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是目标所发生的事件。