JS函数调用问题

我在书上看了段代码,点选button切换图片和说明,里面有一点串不起来:<divstyle="margin-top:100px;text-align:center"><i... 我在书上看了段代码,点选button切换图片和说明,里面有一点串不起来:
<div style="margin-top:100px;text-align:center">
<img id="sceneimg" src="scene0.jpg" alt="Stick Figure Adventure" /></br>
Please choose:
<input type="button" id="decision1" value="1" onclick="changeScene(1)"/>
<input type="button" id="decision2" value="2" onclick="changeScene(2)"/>

img元素的src属性一开始定义为"scene0.jpg",触发onclick事件后调用函数changeScene(),如下:
function changeScene(option){
var message="";
if (curScene==0){
curScene=1;
message="Your journey begins at a rock in the road.";
}
问题是现在if语句里的curScene还没有声明,更没有赋值,函数结束后有更改图片:
document.getElementById("sceneimg").src="scene"+curScene+".jpg";
alert(message);
我觉得问题是当显示图片为scene0时,并没有指定curScene用来表示图片编号,运行程序时卡在判断语句,无法判断curScene是否等于0,不知道理解的对不对,还有不知道该怎么解决问题。
书上前后翻了好几遍没有提到可能出现这样的问题,求网友解答,谢谢。
百度知道问题补充字数有限制,完整代码贴在这里:
http://tieba.baidu.com/p/4140294153
展开
 我来答
然后去远足
2015-11-04 · TA获得超过1万个赞
知道大有可为答主
回答量:4016
采纳率:83%
帮助的人:2437万
展开全部

对,题主理解的是正确的,变量未声明时是不能用 ==、!= 来进行判断的,会抛出 ReferenceError: variable is not defined 异常。


但 js 里有个特殊的地方,变量可以不用 var 来声明,在作用域范围内第一次赋值等同于声明,但不建议这样使用。题主可以从上下文里找一找有没有一个给 curScene 初始赋值的地方。


另外题主贴的这段代码里,function changeScene() 的形参 option 完全没有用到。


【针对问题补充的补充】:

1、紫色圈出的大括号不成对。

2、else 拼写错误。

3、curScene 未定义。运行不了的原因你已经自己分析完了。

阳光上的桥
2015-11-04 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65813
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
你的思路基本上是对的,我补充下面一点,可能你就明白了:JS对变量没有严格要求说明和初始化,没有初始化的变量值为undef,可以进行相等判断和输出,所以程序是可以运行起来的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
栋鸿晖5c
2015-11-04 · 超过24用户采纳过TA的回答
知道答主
回答量:58
采纳率:0%
帮助的人:37.2万
展开全部
看了你的贴吧里的代码,鉴于你要切换的图片只有2个,可以全遍历的方法去读取图片名再判断:
function changeScene(option){
var message="";
var imgName=$("#sceneimg")[0].src;

if (imgName=="scene0"){
curScene=1;
message="Your journey begins at a rock in the road.";
}
els if (imgName=="scene1"){
if(option==1){
curScene=2;
message="You have arrived at a cute little house in the woods.";
}
document.getElementById("sceneimg").src="scene"+curScene+".jpg";
alert(message);
}
如果图片有N张,当然不能用这个方法了,可以结合CSS,给img添加class熟悉,比如
<img class='a1' id="sceneimg" src="scene0.jpg" alt="Stick Figure Adventure" />
js每次改变class,CSS读取class去改变src
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式