[英]How to bind events to dynamically created JQuery DOM elements
我无法在我试图制作的插件中引用一个对象。
该插件与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();
});
链接到jsfiddle的工作示例 。
顺便说一下,你原来的脚本第二个'
在错误的地方:
$("<li id='tab#'" + o.tabCount + " class='tab'><h3>Tab "
^^^
在按标签名称追加ID而不是ID后,您可能希望引用它们。
$(this).find("li").click(function(){ /* do work */});
如果你绝对必须通过ID引用它,你可以这样做:
$(this).find("li").each(function(){
var id = $(this).attr("id");
/* do work */
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.