不使用参数获得被点击对象
2009-01-03 01:45
274 查看
(1) 首先要获得当前的event对象,
IE下实现起来比较的简单,直接使用window.event就可以了。
Firefox下是通过第一个参数传递的,这样通过函数的caller.arguments[0]也同样可以得到。
(2) 获得发生事件的对象
IE下是event对象的srcElement属性,Firefox下是 event对象的target属性。
下面是一个实现的例子
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title></title>
<script language="javascript">
function clickitem(){
var evt = window.event || clickitem.caller.arguments[0];
var srcEl = evt.target || evt.srcElement;
var oParNode = srcEl.parentNode;
var aLis = oParNode.getElementsByTagName("li");
var i, nLen = aLis.length, nIndex = -1;
for (i = 0; i < nLen; i++) {
if (aLis[i] == srcEl) {
nIndex = i;
break;
}
}
alert(nIndex);
}
</script>
</head>
<body>
<div id="unChosed">
<ul>
<li onclick="clickitem()">- A </li>
<li onclick="clickitem()">- B </li>
<li onclick="clickitem()">- C </li>
</ul>
</div>
</body>
</html>
IE下实现起来比较的简单,直接使用window.event就可以了。
Firefox下是通过第一个参数传递的,这样通过函数的caller.arguments[0]也同样可以得到。
(2) 获得发生事件的对象
IE下是event对象的srcElement属性,Firefox下是 event对象的target属性。
下面是一个实现的例子
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title></title>
<script language="javascript">
function clickitem(){
var evt = window.event || clickitem.caller.arguments[0];
var srcEl = evt.target || evt.srcElement;
var oParNode = srcEl.parentNode;
var aLis = oParNode.getElementsByTagName("li");
var i, nLen = aLis.length, nIndex = -1;
for (i = 0; i < nLen; i++) {
if (aLis[i] == srcEl) {
nIndex = i;
break;
}
}
alert(nIndex);
}
</script>
</head>
<body>
<div id="unChosed">
<ul>
<li onclick="clickitem()">- A </li>
<li onclick="clickitem()">- B </li>
<li onclick="clickitem()">- C </li>
</ul>
</div>
</body>
</html>
相关文章推荐
- unity提高----------射线使用【unity3d 怎样获得当前鼠标点击的对象】
- 关于在struts2中interceptor 中使用ActionInvocation 对象获得HttpServletRequest中封装的参数,以Map的形式
- Java 客户端后台使用HTTP POST传递对象参数到服务器端
- 使用方法参数与对象属性之间的比较
- c++构造函数不能使用本class对象作为参数
- WebService学习之如何使用实体对象作为参数
- 如何使用带参数的对象作为类成员
- 获得地址栏的参数组成一个对象
- jQuery DataTable使用时不能把请求参数绑定到javabean对象中
- 使用js声明数组,对象在jsp页面中(获得ajax得到json数据)
- 使用自定义setTimeout和setInterval使之可以传递参数和对象参数
- Android开发 AIDL使用自定义对象作参数或返回值
- 使用HashMap对象传递url参数实用工具类
- 使用XML作为项目的配置文件使用,并解析之,获得数据作为链接数据库的参数
- 使用ADO.NET对象调用存储过程的输入和输出参数
- ios开发系列之使用NSDirectoryEnumerator的对象获得目录的资源列表
- 探讨:使用httpClient在客户端与服务器端传输对象参数的详解
- HTML5标签点击事件方法:无法传递对象类型参数
- jQuery form插件的使用--ajaxForm()和ajaxSubmit()的可选参数项对象
- js获得参数的getParameter使用示例