div 单击不能触发事件?

badnews 2009-09-05 09:37:51

<input id="Button4" type="button" value="按钮单击" onclick="ddd()" />

<DIV id="zzzz" onclick="gg('123')">div单击</DIV>



function ddd()
{
alert(document.getElementById("zzzz").onclick.toString())

document.getElementById("zzzz").onclick = "gg('456')";

}


function gg(a)
{
alert(a)

}



单击 "div单击",可以触发 gg(a)

但当单击 按钮 “按钮单击" 后,“按钮单击" 单击执行 函数 ddd(),改变了 div 的函数头。在单击“按钮单击",
就不触发 函数 gg(a) 了?



...全文
2009 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
toury 2009-09-06
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 badnews 的回复:]
是这样

    在页面加载时,动态产生的 div

      <DIV id="zzzz" onclick="gg('123')">div单击 </DIV>

      页面加载后,对这个div 更改 onclick,例如要达到如下效果

      <DIV id="zzzz" onclick="gg('456')">div单击 </DIV>

      更改后, div 的 单击事件就不触发了


[/Quote]
document.getElementById("zzzz").onclick = function(){gg('456');}
chen_ya_ping 2009-09-06
  • 打赏
  • 举报
回复
document.getElementById("zzzz").onclick = gg('456');
lord_is_layuping 2009-09-06
  • 打赏
  • 举报
回复
document.getElementById("zzzz").onclick = Function(" return gg('456')"); //这样就将onclick和一个匿名的function绑定了, 只有这么做是合理的
lord_is_layuping 2009-09-06
  • 打赏
  • 举报
回复


<input id="Button4" type="button" value="按钮单击" onclick="ddd()" />

<DIV id="zzzz" onclick="gg('123')">div单击 </DIV>

<script language="javascript">

function ddd()
{
alert(document.getElementById("zzzz").onclick.toString())
//document.getElementById("zzzz").onclick = "gg('456')";//这样写是指针指向字符串
//document.getElementById("zzzz").onclick = gg('456');//这样是指向了一个返回值, 你的gg返回void, 那onclick就是undefined了
document.getElementById("zzzz").onclick = Function(" return gg('456')"); //这样就将onclick和一个匿名的function绑定了, 只有这么做是合理的
}


function gg(a)
{
alert(a)
}
</script>

cswjun 2009-09-05
  • 打赏
  • 举报
回复
window.onload = function(){
document.getElementById('zzzz').onclik = gg;
}
这种写法一般不可以传递参数,gg()后面不能加括号,否则会立即执行的
BeenZ 2009-09-05
  • 打赏
  • 举报
回复
改成上面的代码就可以触发了,事件绑定的问题
badnews 2009-09-05
  • 打赏
  • 举报
回复
是这样

在页面加载时,动态产生的 div

<DIV id="zzzz" onclick="gg('123')">div单击 </DIV>

页面加载后,对这个div 更改 onclick,例如要达到如下效果

<DIV id="zzzz" onclick="gg('456')">div单击 </DIV>

更改后, div 的 单击事件就不触发了

hookee 2009-09-05
  • 打赏
  • 举报
回复

<input id="Button4" type="button" value="按钮单击" onclick="ddd()" />

<DIV id="zzzz" onclick="gg('123')">div单击 </DIV>

<script language="javascript">

function ddd()
{
alert(document.getElementById("zzzz").onclick.toString())
document.getElementById("zzzz").onclick = function(){gg('456');}
}


function gg(a)
{
alert(a)
}
</script>
BeenZ 2009-09-05
  • 打赏
  • 举报
回复
这样就行了

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<META http-equiv="Content-Style-Type" content="text/css">
<script language="javascript">
function ddd()
{
alert(document.getElementById("zzzz").onclick.toString())

document.getElementById("zzzz").onclick = gg('456');

}


function gg(a)
{
return function(){
alert(a)
}
}




</script>
</head>
<body>
<input id="Button4" type="button" value="按钮单击" onclick="ddd()" NAME="Button4"/>

<DIV id="zzzz" onclick=(gg('123'))()>div单击 </DIV>
</body>
</html>

BeenZ 2009-09-05
  • 打赏
  • 举报
回复
document.getElementById("zzzz").onclick = gg('456'); //没双引号
BeenZ 2009-09-05
  • 打赏
  • 举报
回复
document.getElementById("zzzz").onclick = "gg('456')";

}


function gg(a)
{
return function(){
alert(a)
}

}

87,902

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧