js中不能给对象赋onclick事件

小伙真帅 2010-01-02 05:28:49
我写了这样一段代码:

function showClick()
{
var img=$("navi").getElementsByTagName("img");
for(gi=0;gi<img.length;gi++)
{
img[gi].onclick=function ()
{

img[gi].className="hidden";
if(gi==img.length-1)
{gi=-1;}

img[gi+1].className+=" nxt";
init();
}
img[gi].onmouseover=function(){this.className="normal";}
img[gi].onmouseout=function(){this.className="hidden";}
}
}

代码如上。我做一个遍历。对每个图片,如果产生点击的操作。就给他的CLASSNAME赋值。以便下一步操作。


但是我在FF下发现它提示img[gi]未定义.在IE中不能处理点击事件。却能处理onmouseover onmouseout事件。

这个是为什么?
...全文
129 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
licip 2010-01-02
  • 打赏
  • 举报
回复
3楼的方法太棒了,采用闭包的形式解决问题。
hehuan1213 2010-01-02
  • 打赏
  • 举报
回复
function showClick() { var img=$("navi").getElementsByTagName("img"); for(gi=0;gi <img.length;gi++) { img[gi].onclick=(function(n){ return function() { var img=$("navi").getElementsByTagName("img"); img[n].className="hidden"; if(n==img.length-1) n=-1; img[n+1].className+=" nxt"; init(); } })(gi); img[gi].onmouseover=function(){this.className="normal";} img[gi].onmouseout=function(){this.className="hidden";} } }

antony1029 2010-01-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hookee 的回复:]
JScript codefunction showClick()
{var img=$("navi").getElementsByTagName("img");for(gi=0;gi<img.length;gi++)
{
img[gi].onclick=(function(n){returnfunction()
{var img=$("navi").getElem?-
[/Quote]
学习!
jiewenxu 2010-01-02
  • 打赏
  • 举报
回复
弄清楚img[gi]未定义的原因是gi是局部变量。楼上使用匿名函数可以解决这个问题
hookee 2010-01-02
  • 打赏
  • 举报
回复

function showClick()
{
var img=$("navi").getElementsByTagName("img");
for(gi=0;gi <img.length;gi++)
{
img[gi].onclick=(function(n){
return function()
{
var img=$("navi").getElementsByTagName("img");
img[n].className="hidden";
if(n==img.length-1) n=-1;
img[n+1].className+=" nxt";
init();
}
})(gi);
img[gi].onmouseover=function(){this.className="normal";}
img[gi].onmouseout=function(){this.className="hidden";}
}
}
东大坡居士 2010-01-02
  • 打赏
  • 举报
回复
你用attachEvent试试
真哥哥 2010-01-02
  • 打赏
  • 举报
回复
你可以用jQuery的$("#id").bind("click",function(){});对他绑定一个click事件!

87,997

社区成员

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

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