【发布时间】:2018-01-02 21:03:23
【问题描述】:
我在将克隆模板克隆到同一模板时遇到问题。 我有一个主模板和两个子模板。我希望能够在事件的一个主模板中打开一个子模板,并在第二个事件的另一个主模板中打开另一个子模板。但是现在他们在每个事件中都在同一个主模板中打开。 主模板:
<main>
<div id="wrapper">
<template class="myTemplate">
<div class="dragdiv">
<div class="dragdivheader">Main template</div>
<div class="windowContent">
</div>
</div>
</template>
</div>
</main>
第一个子模板:
<template>
<div class="memory">
<a href="#"><img src="image/0.jpeg" alt="A brick"></a>
</div>
</template>
第二个子模板:
<template class="chatBox">
<div class="chat">
<div class="messages">
<template>
<div class="message">
<p class="author"></p>
<p class="text"></p>
</div>
</template>
</div>
<div id="messageArea">
<textarea class="messageArea"></textarea>
<input type="button" class="send" value="Send" />
</div>
</div>
</template>
事件监听器:
document.querySelector('#memoryLauncher').onclick = function () {
let container = document.querySelector('#wrapper')
let mainTemplate =
document.querySelectorAll('template'[0].content.firstElementChild
let div = document.importNode(mainTemplate, true)
container.appendChild(div)
startMemory(4, 4)
}
document.querySelector('#chatLauncher').onclick = function () {
let container = document.querySelector('#wrapper')
let mainTemplate =
document.querySelectorAll('template'[0].content.firstElementChild
let div = document.importNode(mainTemplate, true)
container.appendChild(div)
let chat = new Chat(document.querySelector('.windowContent'))
chat.connect().then(function (socket) {
})
}
【问题讨论】:
-
除了缺少一个右括号之外,两个函数的第一部分是相同的(直到空行),除了您将点击侦听器附加到哪个元素。我没有足够的上下文,但我怀疑#wrapper 和/或模板索引应该在这两者之间有所不同。
-
@RyanHanekamp 我添加了 wrapper-div ,如果它清除了一点,所有元素都应该结束。所以从现在看来,你不认为每个事件都应该创建一个新的主模板容器吗?
标签: javascript html dom event-handling templatetags