【发布时间】:2019-08-04 04:04:14
【问题描述】:
我正在尝试使用包含当前任务文本的对象数组创建交互式教程。
文本创建任务并动态附加一个按钮。
let currentTutorialCount = 0;
var tutorial = [{
text: "Welcome, I'll be your Task Manager and Guide <button class =
'button-next'> Got it</button>",
set: function () {
$('#info-container').addClass('non-active');
$('#canvas-container').addClass('non-active');
$('#info-container-transparent').css('display', 'block');
$('#canvas-container-transparent').css('display', 'block');
$('#suggestion').html(this.text);
}
},
{
text: "Here you can find information about your String and Current
State <button class = 'button-next'>Got it</button>",
set: function () {
$('#info-container-transparent').css('display', 'none');
$('#info-container-text').addClass('highlightBorder');
$('#info-container-buttons-transparent').css('display', 'block');
$('#suggestion').html(this.text);
}
},
{
text: "Here you can generate new Random Graphs and Strings <button
class = 'button-next'>Got it</button>",
set: function () {
$('#info-container-text').removeClass('highlightBorder');
$('#info-container-buttons').addClass('highlightBorder');
$('#info-container-buttons-transparent').css('display', 'none');
$('#info-container-buttons-transparent').css('display', 'block');
$('#suggestion').html(this.text);
}
}
];`
当我在单击按钮时添加事件侦听器时,计划是通过增加 currentTutorialCount 并调用 set 函数来移动到下一个任务:
$('.button-next').click(() => {
currentTutorialCount += 1;
tutorial[currentTutorialCount].set();
});
DOM结构如下:
<div id="main-feedback-grid">
<div id="information">
<p id="suggestion">Welcome, Make your first transition to the next node</p>
<button class="answer" value="true">Yes</button>
<button class="answer" value="false">No</button>
</div>
</div>
我的问题是单击事件仅在我第一次单击按钮时才起作用。我假设每次 set() 函数创建一个新按钮时按钮的引用都会丢失。有什么建议吗?
【问题讨论】:
-
请用父按钮发布完整的html。
-
您好,该按钮是在教程对象的 text 属性内动态创建的,并附加到#suggestion 段落。
标签: javascript html events dom