我在使用此网站时遇到问题 -
http://thestamp.umd.edu/canvastest/test.html
我正在尝试使用JavaScript构建一个简单的HTML电子邮件程序,以呈现并生成HTML,然后将其发送到页面等。
然而,当你创建三个段落(箱を作る)然后尝试移动第三个段落时onclick是swapup('render2');它只是将它移到顶部。
但奇怪的是当你粘贴掉掉('render2');在控制台中,它工作得很好。当我没有以任何身份引用“this”时,为什么onclick行为会有所不同?
答案 0 :(得分:2)
你的问题是你要两次调用swapup。看一下HTML
<span class="floatbutton" onclick="swapup('render0');">
<input onclick="swapup('render2');" value="上" type="button">
<input onclick="swapdown();" value="下" type="button">
</span>
span和input都调用swapup。看起来交换是在某个时刻动态分配到跨度,这可能会导致你的问题......我将不得不再挖掘一点来解决它。
编辑:
我现在看到了。在您的交换功能中,您正在调用
elm.childNodes[0].setAttribute('onclick', 'swapup(\'' + previous.id + '\');');
我不确定你是否打算这样做......你能澄清一下吗?
编辑2:
我认为你需要改变
elm.childNodes[0].setAttribute('onclick', 'swapup(\'' + previous.id + '\');');
previous.childNodes[0].setAttribute('onclick', 'swapup(\'' + temp + '\');');
在boxes.js第23-24行到
elm.getElementsByTagName("input")[0].setAttribute('onclick', 'swapup(\'' + previous.id + '\');');
previous.getElementsByTagName("input")[0].setAttribute('onclick', 'swapup(\'' + temp + '\');');