文档准备好后,我通过发布请求从服务器获取一些数据,并通过 append 将其作为标签填充到 HTML 中。当您单击该标签时,将显示一个注释文本区域。当您单击该document
部分时,文本区域将关闭。这里的问题是我无法在textarea中输入文本,当我点击里面时,它被隐藏了。我尝试使用event.stopPropagation()
但没有用。
这是我的jQuery代码:
$.post("/person/keywords/get/", function(data){
for(i=0; i<data.length; i++)
{
count = count + 1;
$(".keywords-set").append('<div class="keyword-item"><span class="keyword" id="keyword-'+count+'">'+data[i]+'</span><textarea class="comment" id="comment-'+count+'"></textarea></div>');
}
});
$(".keywords-set").on('click', "[id^=keyword]", function(event) {
event.preventDefault();
i = $(this).attr("id");
i = i.split('-').pop();
$("#comment-"+i).show();
return false;
});
$(".comment").click(function(event) {
event.stopPropagation();
});
$(document).click(function() {
$(".comment").hide();
});
如需完整的 HTML 和 javascript 代码,请在此处查看:https ://gist.github.com/3024186
它在jsfiddle中工作, 但不在我的本地主机中。你能说出原因吗,为什么会这样?
谢谢!
更新
我也试过这个
$(".keywords_set").on('click', ".comment", function(event) {
event.stopPropagation();
});
event.stopPropagation()
不适用于通过 ajax 更新的 HTML 元素。但是适用于正常(已经给定的)元素。