我试图通过jquery append('html')方法动态添加一个包含命名锚点和目标的html代码段
追加后,所有指定的链接都不起作用。新添加的内容在页面上可见,但链接不起作用。是因为这些标签是动态添加的,还是我在这里做错了?但是,所有服务器端生成的命名锚点都可以正常工作。
简化的html:
<a href="#tab">Foo</a>
<div id="tab"></div>
("#testButton").click(function() {
$('#mainSegmentDiv').append("html")
});
答案 0 :(得分:5)
附加了JavaScript 的锚点应该作为锚点(因为点击它们应带你到其href
属性中指定的任何位置),但是如果您尝试使用代码名称id
或class
来选择它们,他们不会工作&#39;因为当事件处理程序绑定时,它们不会出现在DOM中:
JS Fiddle demo (demonstrates non-working code)
如果不了解您的HTML或您正在做的事情,我只能向您提供此建议:
$('body').on('click','a',function(){
// do something
});
JS Fiddle demo (demonstrates working code)
on()
方法将click
事件(在本例中)附加到body
元素,并依赖事件传播来工作,因为点击气泡直到{{1然后找出它来自何处以及它是否与给定的选择器匹配(在这种情况下为body
,您可以使用a
,id
或任何有效的jQuery选择器)。如果它与选择器匹配,则执行事件/功能(在这种情况下,class
注释)的功能。
理想情况下,您不是使用// do something
而是使用最接近的父元素,而是将这些元素添加到事件绑定时存在的DOM中(通常为$('body')
)。
参考文献:
on()
。答案 1 :(得分:0)
您没有写$
选择符。开始行
$("#testButton").click(function() {