<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script language="javascript">
function blockMouseDown(obj)//当滑块按下时候
{
alert(obj.getAttribute("id"));
}
</script>
</head><body>
<div id="aa" onmouseup="blockMouseDown(this)">click me</div>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script language="javascript">
function blockMouseDown(obj)//当滑块按下时候
{
alert(obj.getAttribute("id"));
}
</script>
</head><body>
<div id="aa" onmouseup="blockMouseDown(this)">click me</div>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script language="javascript">
function blockMouseDown(obj)//当滑块按下时候
{
alert(obj.id)
obj.onmouseup = function(obj) //obj参数并没有得到传递
{
// alert(obj.id);
alert(obj) //undefined
}}
</script>
</head><body>
<div id="aa" onclick="blockMouseDown(this)">click me</div>
</body>
</html>
obj.onmouseup = function()
{
alert(this.id);//对象取得不对,这里的this就是obj对象
}
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script language="javascript">
function blockMouseDown(obj)//当滑块按下时候
{
ss=obj //参数接收!!!
obj.onmouseup = function()
{ alert(ss.id);
}}
</script>
</head><body>
<div id="aa" onclick="blockMouseDown(this)">click me</div>
</body>
</html>
函数的调用中的参数,应与定义函数的参数对应。this 与blockMouseDown(obj)中的obj相一致。而与子函数中的参数没有对应关系。因此这里的obj未定义。但并不影响
obj.onmouseup 这样的写法。“=”左边是对的,右边是错的。
我的答案不知你是否满意?
onmouseup事件你可以在div中直接定义。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script language="javascript">
function blockMouseDown(obj)//当滑块按下时候
{ss=obj
obj.onmouseup = function()
{ alert(ss.id);
}}
</script>
</head><body>
<div id="aa" onmousedown="blockMouseDown(this)">click me</div>
</body>
</html>
由于这个参数的存在覆盖了你对象的同名变量.
因此函数内部访问的是这个obj对象.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script language="javascript">
function blockMouseDown(obj)
//当滑块按下时候
{
obj.onmouseup = function()
{
alert(obj.id);
}
}
</script>
</head>
<body>
<div id="aa" onclick="blockMouseDown(this)">click me</div>
</body>
</html>
1、obj.onmouseup = function(obj) 错误,原因如我5楼所说。这也是你打提的主要问题。
2、onclick事件引用函数中,不能再有onmouseup事件。这会使每次打开网页时,第一次单击都没有效果的。原因如我5楼所说。原因如我8楼第一句所说。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script language="javascript">
function blockMouseDown(obj)
//当滑块按下时候
{
obj.onmouseup = function()
{
alert(obj.id); //9楼这样写更简洁--引用
}
}
</script>
</head>
<body>
<div id="aa" onmousedown="blockMouseDown(this)">click me</div>
</body>
</html>
{
alert(this.id);//对象取得不对,这里的this就是obj对象
}没错,这也是this的一个特殊用法。
this指的的是相应这个mouseup事件的对象。