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

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/18734393/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-26 22:21:37  来源:igfitidea点击:

how to trigger click event on dynamically created element in jquery

jquerydynamicclickelement

提问by user2682527

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();
        }
    }

.click() is not working since liId is a dynamically created element. I want the first li element to be auto clicked when the page loads. Is there any other way to do it?

.click() 不起作用,因为 liId 是一个动态创建的元素。我希望在页面加载时自动点击第一个 li 元素。有没有其他方法可以做到?

回答by Sudhir Bastakoti

do something like:

做类似的事情:

$("#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");

Demo :: jsFiddle

演示 :: jsFiddle

回答by Dipesh Parmar

I have seen your ID is starting with Termso you can use .on() to add click event on DOM that are added later.

我已经看到您的 ID 以 开头,Term因此您可以使用 .on() 在稍后添加的 DOM 上添加点击事件。

Exapmple

例子

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

回答by Gautam3164

Try with .trigger()like

尝试.trigger()喜欢

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

回答by bipen

use event delgation oninside your ready function

on在准备好的函数中使用事件委托

try this

尝试这个

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