如何在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 }); });