下面的代码为什么不能是图片移动,alert(wg_left)他的值已经变了,为啥图片不动呢,还有就是如果将
var wg_left=$('wg').style.left;放到move函数的上面,为何这个全局变量在move函数中用不呢,但是如果不获取图片的属性值,而是换个变量值,这个全局变量就能用,感到很郁闷?
代码如下:
<br>
function $(id)<br>
{<br>
return document.getElementById(id);<br>
}</p>
<p>function move(e)<br>
{ var wg_left=$('wg').style.left;<br>
wg_left=parseInt(wg_left.substr(wg_left.lenght-2));<br>
switch(e.keyCode)<br>
{<br>
case 37:<br>
alert(wg_left);<br>
wg_left=wg_left-10+"px";<br>
alert(wg_left);<br>
break;<br>
}<br>
}</p>
<p>
javascript 作用域问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- Go 旅城通票 2014-11-29 06:03关注
你只是改变了变量值,没有重新设置对象的left啊,这个值不是地址引用,是值引用,还学要重设下
而且substr放你也用的不对,直接parseInt就行,不需要截取了,parseInt会将前面的数字字符串转为数字,碰到第一个非数字的内容之后的全部丢弃。而且需要注意设置left属性值你这个对象定位需要为absolute或者relative,要不设置left无效
function $(id) { return document.getElementById(id); } function move(e) { var wg_left=$('wg').style.left; wg_left=parseInt(wg_left); switch(e.keyCode) { case 37: wg_left=wg_left-10+"px"; break; } $('wg').style.left=wg_left//要重新设置过 }
解决 无用评论 打赏 举报
悬赏问题
- ¥15 运筹学中在线排序的时间在线排序的在线LPT算法
- ¥30 求一段fortran代码用IVF编译运行的结果
- ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
- ¥15 lammps拉伸应力应变曲线分析
- ¥15 C++ 头文件/宏冲突问题解决
- ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
- ¥50 安卓adb backup备份子用户应用数据失败
- ¥20 有人能用聚类分析帮我分析一下文本内容嘛
- ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
- ¥30 python代码,帮调试,帮帮忙吧