我正在尝试绘制矩形并捕获textarea中的坐标。提供了一个按钮来清除文本区域。
问题 1 :textarea未被清除(下次更新textarea时删除的文本仍然存在)。
$("#clearoutput").click(function (e) {
$("#output").empty();
});
我试过了.val("")
,但这似乎只是清除了textarea表单。该文本仍然在html源中可见。此外,它保持清除,不允许新的条目。
问题 2 :我不确定追加是如何运作的。如果我没有将.empty()
放在mousedown上(即开始新绘图),它将附加整个textarea而不是追加最后一行。那是为什么?
有关重现问题1的代码和说明,请参阅http://jsfiddle.net/dpqm77b7/ (代码改编自jQuery drag and draw)
谢谢!
答案 0 :(得分:1)
您的代码中有几个错误。
1 - 您有一个多次应用的事件监听器。您必须在容器上添加.off("mousemove")
和.off("mouseup")
。
2 - 输入字段没有DOM子级。因此,您无法在输入中附加DOM元素。您可以使用.val()
代替.append()
作为输入元素。
3 - 您的清除按钮可以清除textarea,但不能绘制。所以我存储了将信息绘制到数组中。清除后,您可以访问旧的绘图信息。
你可以看到这个小提琴完美运作。
http://jsfiddle.net/ebilgin/dpqm77b7/5/
(woodduck添加了一行(根据评论)使其按预期工作:http://jsfiddle.net/df2te8oy/)
答案 1 :(得分:0)
问题1:
.val('')
正在使用的原因,因为您要将内容附加到textarea而不是设置它。在textboxes / textareas中设置内容为空
$("#clearoutput").click(function (e) {
$("#output").val('');
});
问题2:
您应该使用.val()
来获取/设置/修改textarea内容
$("#output").val(function(i,oldval){
return !oldval.length ? os :oldval+ "\n" + os;
});
<强> Working Demo 强>