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()无效,因为liId是动态创建的元素。我想在页面加载时自动点击第一个li元素。还有其他办法吗?
答案 0 :(得分:11)
做类似的事情:
$("#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
答案 1 :(得分:7)
我已经看到您的ID以Term
开头,因此您可以使用.on()在稍后添加的DOM上添加Click事件。
<强> Exapmple 强>
$(document).on('click','[id^="Term"]',function(){
//code here
});
答案 2 :(得分:5)
尝试.trigger()
喜欢
$('#'+liId).trigger('click');
答案 3 :(得分:-3)
在准备好的函数中使用事件委派on
试试这个
$(function(){
$('#term').on('click','li:first',function(){
//do your stuff
});
});