Javascript 如何将事件绑定到动态创建的JQuery DOM元素

Javascript 如何将事件绑定到动态创建的JQuery DOM元素,javascript,jquery,jquery-plugins,Javascript,Jquery,Jquery Plugins,我在尝试制作的插件中引用对象时遇到问题 该插件与一个div容器相关联 当dom准备就绪时,它将以启动默认值加载—创建自己的div,其中包含它知道的id和一个未排序的列表。我可以使用$this.append(..)添加列表项,它们可以正常工作。但是,我想添加一个功能,单击单个列表项可以做一些事情。。现在,警惕就足够了 通常情况下,我能够做到: $("#myId").click(function(){... 我如何将这些功能添加到插件中 我希望该操作由插件本身设置,因此单击插件创建的列表项已附加到

我在尝试制作的插件中引用对象时遇到问题

该插件与一个div容器相关联

当dom准备就绪时,它将以启动默认值加载—创建自己的div,其中包含它知道的id和一个未排序的列表。我可以使用
$this.append(..)
添加列表项,它们可以正常工作。但是,我想添加一个功能,单击单个列表项可以做一些事情。。现在,警惕就足够了

通常情况下,我能够做到:

$("#myId").click(function(){...
我如何将这些功能添加到插件中


我希望该操作由插件本身设置,因此单击插件创建的列表项已附加到我已写入jquery插件的某些功能。

根据您的评论,您可以将新选项卡存储在一个变量中:

var newTab = $("<li id='tab#" + o.tabCount + "' myTabPane='" + 
    o.tabId + o.tabCount + "' class='tab'><h3>Tab " + o.tabCount
    + "</h3></li>");
$('#' + o.tabListId).append(newTab);
newTab.click(function() {
    var paneId = '#' + $(this).attr('myTabPane');
    $(paneId).siblings().hide();
    $(paneId).show();
});

您可能希望在按标记名而不是ID追加后引用它们

$(this).find("li").click(function(){  /* do work */});
如果您必须通过ID引用它,您可以执行以下操作:

$(this).find("li").each(function(){
   var id = $(this).attr("id");
   /* do work */
});

既然你正在开发这个插件,你能让它接受孩子们的点击功能作为一个参数吗?谢谢你的回复,但是我仍然有同样的问题。我已经将代码移到js fiddle来说明我的意思。我基本上只想在“标签”上执行一个点击操作,并获取标签的详细信息。但是,选项卡是动态生成的。此过程仍然会动态提取添加的选项卡。你可以把它放在你的附件后面。为了回应您在上述评论中的评论(仅针对其他路人),您需要在您的LI附加中添加data=“#pannelID”。JQuery可以像静态html一样计算动态添加的html。干杯!但还是一样的问题,如果你看一下我在@VulgarBinary上的评论,你可以找到代码的链接。嘿!谢谢,这似乎更符合我的要求。不过,如果我有大量的“选项卡”并想跟踪它们,例如,单击一个选项卡与另一个选项卡不同,我想根据单击的选项卡的不同,将选项卡下的内容窗格更改为来回。知道这一点会改变你的答案吗?谢谢。@Juli:您可以给每个选项卡一个属性,该属性具有相应窗格的id。例子绝对完美!我认为你的答案是正确的。非常感谢。在这个问题上,如果标签的长度大于浏览器屏幕的宽度,那么我在div中的标签数量会在多行上运行。胡里奥:不知道,事实上我对这个问题的答案很感兴趣。也许是个新问题?
$(this).find("li").each(function(){
   var id = $(this).attr("id");
   /* do work */
});