如何给元素注册事件方法

now00000 2009-07-31 06:05:20

<script language="javascript" type="text/javascript">
var ul=window.document.getElementById("ul_2");
var a_arry=ul.getElementsByTagName("a");
for(var i=0;i<a_arry.length;i++)
{
a_arry[i].onClick=changepage(a_arry[i]);//为什么这里没有为元素的"onClick"事件注册方法~~而是直接执行
} //changepage(a_arry[i])方法
function changepage(element)
{
window.document.getElementById("my_frame").src="007.htm";
}
</script>



在javascript里为a_arry[i].onClick注册changepage方法该怎么做!!!!!???
...全文
58 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
now00000 2009-08-01
  • 打赏
  • 举报
回复
果然如3楼的大哥说的~~~~<a>是一个链接把自己本身的click事件给抛弃了。

我点击<a>的时候~~直接就运行到<a>连接的地址~~`不执行上面注册的方法~~~

请问我该怎么办~~~~?
W3CLEAGUEMEMBER 2009-08-01
  • 打赏
  • 举报
回复
onclick方法后面所跟的调用方法不用带括号后面的。再者,由于<a>是一个链接,有可能把自己本身的click事件给抛弃。
monexus 2009-08-01
  • 打赏
  • 举报
回复
a_arry[i].onClick=changepage(a_arry[i]);
这样写是把changepage执行后的结果附给a_arry[i].onClick

改为
a_arry[i].onClick=changepage;
在changepage里用this就a_arry[i]了
zhangw428 2009-07-31
  • 打赏
  • 举报
回复
<script language="javascript" type="text/javascript">
var ul=window.document.getElementById("ul_2");
var a_arry=ul.getElementsByTagName("a");
for(var i=0;i<a_arry.length;i++)
{
a_arry[i].onClick=function(){
changepage(a_arry[i]);//为什么这里没有为元素的"onClick"事件注册方法~~而是直接执行
}
} //changepage(a_arry[i])方法
function changepage(element)
{
window.document.getElementById("my_frame").src="007.htm";
}
</script>

87,902

社区成员

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

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