首页 > 代码库 > javascript对行单击事件处理(委托事件)

javascript对行单击事件处理(委托事件)

我们有时候需要对一行数据做一个单击事件,即点击行中的任意位置都能触发该事件,我遇到的问题是在一个ul标签中的li标签中,当点击行中的任何一个位置时都让有反应进行不同的显示,我这里做了个demo,如果有更好的方法请分享一下:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>行单击事件</title>
<style type="text/css">
	span {
		background-color:green;
		width:120px;
	}
</style>
<script type="text/javascript" src="http://www.mamicode.com/html/jquery-1.8.3.js"></script>
<script type="text/javascript">
	$(function(){
		$("#lineTest").on("click", "li", function(){
			if($(this).closest("li").find("img[name=‘arrow-icon‘]").attr(‘src‘).indexOf("up.png") == -1) {
				$(this).closest("li").find("img[name=‘arrow-icon‘]").attr("src", "../img/up.png");
				$(this).closest("li").find("span:last").append("<div>" + $(this).html() + $(this).attr("id")+ "</div>");
			} else {
				$(this).closest("li").find("img[name=arrow-icon]").attr("src", "../img/down.png");
				$(this).closest("li").find("div").remove();
			}
		});
	});
</script>
</head>
<body>
	<ul id="lineTest">
		<li id="1001"><span >abc</span>&nbsp;&nbsp;&nbsp;<span>行测试</span>&nbsp;&nbsp;&nbsp;<span>首行</span>&nbsp;&nbsp;&nbsp;<span><img name="arrow-icon" alt=‘展开‘ src=http://www.mamicode.com/‘../img/down.png‘ />"1002"><span >def</span>&nbsp;&nbsp;&nbsp;<span>行点击测试</span>&nbsp;&nbsp;&nbsp;<span>第二行</span>&nbsp;&nbsp;&nbsp;<span><img name="arrow-icon"  alt=‘展开‘ src=http://www.mamicode.com/‘../img/down.png‘ />"1003"><span >sdf</span>&nbsp;&nbsp;&nbsp;<span>行测试</span>&nbsp;&nbsp;&nbsp;<span>第三行</span>&nbsp;&nbsp;&nbsp;<span><img name="arrow-icon"  alt=‘展开‘ src=http://www.mamicode.com/‘../img/down.png‘ />"1004"><span >wewq</span>&nbsp;&nbsp;&nbsp;<span>行点击测试</span>&nbsp;&nbsp;&nbsp;<span>第四行</span>&nbsp;&nbsp;&nbsp;<span><img name="arrow-icon"  alt=‘展开‘ src=http://www.mamicode.com/‘../img/down.png‘ />"1005"><span >gax</span>&nbsp;&nbsp;&nbsp;<span>行测试</span>&nbsp;&nbsp;&nbsp;<span>第五行</span>&nbsp;&nbsp;&nbsp;<span><img name="arrow-icon"  alt=‘展开‘ src=http://www.mamicode.com/‘../img/down.png‘ />>


javascript对行单击事件处理(委托事件)