如何在jquery中触发动态创建的元素上的click事件

if($('#term').children().length == 0){ $("#term").append("
    "); var i; for(i=1;i<=3;i++){ var liDynamic = "Term "+i; var liId = "Term"+i; $("#ulDynamic").append("
  • "+ liDynamic +"
  • "); if(i==0){ $('#'+liId).click(); } }

    .click()不起作用,因为liId是一个动态创建的元素。 我想在页面加载时自动点击第一个li元素。 还有其他办法吗?

    做类似的事情:

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

      演示:: jsFiddle

      我已经看到你的ID以Term开头,所以你可以使用.on()在稍后添加的DOM上添加click事件。

      Exapmple

       $(document).on('click','[id^="Term"]',function(){ //code here }); 

      尝试使用.trigger()类的

        $('#'+liId).trigger('click'); 

      在准备好的函数内部使用事件delgation

      试试这个

        $(function(){ $('#term').on('click','li:first',function(){ //do your stuff }); });