ドキュメントの準備ができたら、ポスト リクエストを介してサーバーからいくつかのデータをフェッチし、append によってタグとして HTML に入力します。そのタグをクリックすると、コメントテキストエリアが表示されます。document
セクションをクリックすると、テキストエリアが閉じます。ここでの問題は、テキストエリアにテキストを入力できないことです。内部をクリックすると、非表示になります。使ってみ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 要素に対しては機能しません。しかし、通常の(すでに与えられている)要素に対しては機能しています。