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
how to trigger click event on dynamically created element in jquery
提问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 Term
so 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 on
inside your ready function
on
在准备好的函数中使用事件委托
try this
尝试这个
$(function(){
$('#term').on('click','li:first',function(){
//do your stuff
});
});