命名锚不使用动态html和jquery

时间:2012-04-01 18:25:42

标签: jquery anchor

我试图通过jquery append('html')方法动态添加一个包含命名锚点和目标的html代码段

追加后,所有指定的链接都不起作用。新添加的内容在页面上可见,但链接不起作用。是因为这些标签是动态添加的,还是我在这里做错了?但是,所有服务器端生成的命名锚点都可以正常工作。

简化的html:

<a href="#tab">Foo</a>

<div id="tab"></div>

("#testButton").click(function() {
   $('#mainSegmentDiv').append("html")
});

2 个答案:

答案 0 :(得分:5)

附加了JavaScript 的锚点应该作为锚点(因为点击它们带你到其href属性中指定的任何位置),但是如果您尝试使用代码名称idclass来选择它们,他们不会工作&#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,您可以使用aid或任何有效的jQuery选择器)。如果它与选择器匹配,则执行事件/功能(在这种情况下,class注释)的功能。

理想情况下,您不是使用// do something而是使用最接近的父元素,而是将这些元素添加到事件绑定时存在的DOM中(通常为$('body') )。

参考文献:

答案 1 :(得分:0)

您没有写$选择符。开始行

$("#testButton").click(function() {