我想让用户双击我网页上的 li 元素,然后将 li 的文本添加到下面的文本区域。
用户可以双击多个 li 项目。每次发生这种情况时,新项目都会附加到 textarea 中列表的后面。
我在 textarea 中有一些默认文本:“在手风琴中双击电影名称以插入。”
因此,下面的 HTML 代码:
<!-- there is a list before this which I have not included -->
<div id="chosen">
<form action="process.php?stage=4" method="post">
<textarea name="g" row="5">Double click on movie name in list above to insert.</textarea>
<input type="submit" />
</form>
</div>
和jQuery:
$(document).ready (function(){
$('li').bind('dblclick', function(){ //#accordion
var text = $(this).html() + "; ";
$("textarea").append(text);
});
});
该代码在正常情况下绝对有效,但是当我单击文本区域以修改其内容时停止工作。为什么会这样?即使我触摸了 textarea 的内容,有没有办法让代码工作?
(2) 另一方面,为什么下面的代码不起作用?我在发现 append() 方法之前尝试了这个。它与 $(this) 范围有关吗?
$(document).ready (function(){
$('li').bind('dblclick', function(){ //#accordion
var text = $(this).html() + "; ";
$("textarea").html( function() { //.chosen
var currenthtml = $(this).html(); // retrieve the current HTML first
currenthtml += text;
return currenthtml; });
});
});
(3) 另外,如果用户已经双击一个 li 元素以将其包含到 textarea 中,我该如何编程允许撤消该包含的功能?有没有一种方法可以让我做与 append() 相反的操作?