Jquery实现点击换图片

李保强 2013-03-27 11:12:16
遇到一个问题,在页面上有一个图片img,每次点击的时候换成两个图片中的另一个。
下面是我从网上找到的实现方法。
var images = ['images/up.png', 'images/down.png']
var obj= document.getElementById("hideimg");
obj.src = images[arguments.callee.em ^= 1];

这个方法确实实现了我想要的功能,但是我有点不明白其中的道理。

主要是这一句不懂:arguments.callee.em ^= 1。为什么每次点击它就能得到不同的数字?

哪位高手给解释一下?

...全文
454 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
李保强 2013-03-27
  • 打赏
  • 举报
回复
引用 2 楼 functionsub 的回复:
^是异或运算 arguments.callee为当前方法本身 arguments.callee.em给当前方法本身添加一个em属性 第一次arguments.callee.em^=1,arguments.callee.em为undefined,结果为1,切arguments.callee.em=1 第二次arguments.callee.em^1,argu……
谢谢,您给出的解释很详细。
李保强 2013-03-27
  • 打赏
  • 举报
回复
引用 1 楼 liumin_0705 的回复:
$(function(){ var images = ['images/up.png', 'images/down.png'] $(img).onClick(function(){ if($(img).attr("class")=="up"){ $(img).attr("src",images[1]); ……
这也是一个方法,也很简单啊,呵呵。虽然我问的不是这个问题,但是还是感谢你给我提供了一个很好的方法。
functionsub 2013-03-27
  • 打赏
  • 举报
回复
^是异或运算 arguments.callee为当前方法本身 arguments.callee.em给当前方法本身添加一个em属性 第一次arguments.callee.em^=1,arguments.callee.em为undefined,结果为1,切arguments.callee.em=1 第二次arguments.callee.em^1,arguments.callee.em为1,1^1等于0,结果为0,arguments.callee.em=0 适用于这里只有2个元素的数组循环获取里面的元素 具体的异或运算法则自己百度一下。
liumin_0705 2013-03-27
  • 打赏
  • 举报
回复
$(function(){ var images = ['images/up.png', 'images/down.png'] $(img).onClick(function(){ if($(img).attr("class")=="up"){ $(img).attr("src",images[1]); $(img).removeClass(); }else{ $(img).attr("src",images[0]); $(img).addClass("up"); } }); }) <img src="images/up.png" class="up">

87,907

社区成员

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

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