10
if($('#term').children().length == 0){
        $("#term").append("<ul id='ulDynamic' class='ulDynamic'></ul>");
        var i;
        for(i=1;i<=3;i++){
            var liDynamic = "Term "+i;
            var liId = "Term"+i;
            $("#ulDynamic").append("<li id="+liId+ " class='listDynamic'>"+ liDynamic +"</li>");
                    if(i==0){
                       $('#'+liId).click();
        }
    }

liId は動的に作成される要素であるため、.click() は機能しません。ページの読み込み時に最初の li 要素が自動的にクリックされるようにします。それを行う他の方法はありますか?

4

4 に答える 4

13

次のようにします。

$("#term").append("<ul id='ulDynamic' class='ulDynamic'></ul>");
        var i;
        for(i=1;i<=3;i++){
            var liDynamic = "Term "+i;
            var liId = "Term"+i;
            var $li = $("<li />", {
                "id" : liId,
                "class" : 'listDynamic'
            }).html(liDynamic).click(function() {
                alert("clicked:" + this.id);
            });

            $("#ulDynamic").append($li);            
        }
$("#ulDynamic").find("li:first").trigger("click");

デモ :: jsFiddle

于 2013-09-11T07:00:43.453 に答える
7

ID が で始まっているのを見たTermので、.on() を使用して、後で追加される DOM にクリック イベントを追加できます。

$(document).on('click','[id^="Term"]',function(){
  //code here
});
于 2013-09-11T06:47:48.007 に答える
5

.trigger()のようにしてみてください

 $('#'+liId).trigger('click');
于 2013-09-11T06:46:03.453 に答える
-4

on準備完了関数内でイベント委任を使用する

これを試して

 $(function(){
   $('#term').on('click','li:first',function(){
    //do your stuff
   });
 });
于 2013-09-11T06:47:50.397 に答える