【发布时间】:2016-12-01 08:48:24
【问题描述】:
我正在开发一个交互式小说项目,该项目允许用户在故事中选择多种路径。我有一个带有叙述 (#bigtext) 的 div 和一个包含三个选项的框(#Option1、#Option2、#Option3 - 全部用 HTML 跨度元素指定),单击一个选项会激活一个更新文本和故事的下一个“页面”的选项。每个“页面”都是不同的功能,这意味着我可以完全控制背景,因此刷新页面是不可能的。
当我点击一个选项时,它会激活该功能。所有文本都淡出,通过 javascript 更新,然后再次淡入。我的问题是,当我再次单击该按钮时,它不仅调用了所需的函数,而且还调用了为上一个按钮指定的函数。我附上了一个代码示例来演示。
这是更新故事的功能。
function Prologue(){
//Narrative Goes Here
document.getElementById("bigtext").innerHTML = "STORY HERE";
//Options/Inputs go Here
document.getElementById("Option1").innerHTML = "CONTINUE";
document.getElementById("Option2").innerHTML = "";
document.getElementById("Option3").innerHTML = "";
//Entrance animations go here
$("#bigtext").delay(1500).fadeToggle(1000);
$("#optionsbox").delay(2000).fadeToggle(1000);
//On Option Clicked
//Option 1
$('#Option1').mouseup(function() {
$("#bigtext").fadeToggle(1000);
$("#optionsbox").fadeToggle(1000);
setTimeout(Prologue2, 1500);
});
}
我对故事的每个“页面”重复此操作,因此 Prologue2 是下一个功能或“页面”。
这是我的 HTML,我想保留它,因为它非常精简(无论如何在我看来)
<div id="bigtext"> </div>
<div id="optionsbox">
<span id="Option1"></span> <br/>
<span id="Option2"></span> <br/>
<span id="Option3"></span> <br/>
</div>
我发现当我到达“Prologue2”时,当我点击该选项时,它不仅会调用“Prologue3”,而且还会再次调用“Prologue2”,因为我之前使用相同的按钮来指定该功能.有没有更好的方法可以解决这个问题,或者在使用以前的功能后以某种方式删除它?
【问题讨论】:
-
你能把代码放在它调用
Prologue3的地方吗?
标签: javascript jquery html