0

これは私のjqueryコードです:

$(function(){
$.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>');
    }
});

$(".keyword-sets").on('click', "[id^=keyword]", function(event) {
    event.preventDefault();
    alert("yes");
});
})

ページの読み込み時に、サーバーからいくつかのデータをフェッチして、それをhtmlに追加します。クリックイベントは、追加されたhtmlアイテムでは機能しません。.post()リクエストによってサーバーから取得したすべてのアイテムでこの問題が発生します。

これが私の完全なHTMLとjQueryコードです:

https://gist.github.com/3023937

もう1つ、問題はhtml内で(外部ファイルとしてではなく)jQueryコードを使用することで発生すると思います。別のプロジェクトでこのようなタイプのコードを使用していますが、外部ファイルにjqueryコードがあり、問題なく機能します。なんでそうなの?

PSさらに詳しい情報が必要な場合は、お知らせします。

ありがとう!

4

1 に答える 1

6

このコード:

$(".keyword-sets")

複数形を「設定」と言いますが、その記号は他のどこにも見当たりません。おそらくあなたは意味しました:

$(".keyword-set").on("click", ...

編集—おっと".keywords-set"..。

于 2012-06-30T14:32:19.053 に答える