jQuery单击附加元素

Dej*_*jan 12 jquery append click

我已经使用jQuery生成了一些html链接并将其附加到某个div但是它接缝我现在不能调用click方法,当这些元素被追加时(当它们被硬编码到html时它工作正常) $('#something a').click(function() ...

有谁知道这方面的解决方案?

Nic*_*ver 21

使用.delegate()了这些情况:

$('#something').delegate('a', 'click', function() {
Run Code Online (Sandbox Code Playgroud)

这会附加一个click处理程序#something,而不是指向<a>...内的元素,因此它适用于稍后附加的锚点.替代方案(更糟糕的是有几个原因)版本是.live()这样的:

$('#something a').live('click', function() {
Run Code Online (Sandbox Code Playgroud)

  • @Josh,@ .Jakub - 使用`.live()`,让我们看看上面的代码 - `$('#sa a')`选择器立即运行,但我们不关心它找到了什么...结果浪费了.此外,由于它附加到`document`,*每个*`click`都必须针对该选择器进行检查.使用`.delegate()`只运行非常快的`$('#something')`选择器,我们使用结果.此外,只需要检查`#somes'中的点击,因为它们是在那个父项上检查的,所以`.delegate()`解决了2个性能原因...使用更昂贵的选择器,增益更大. (4认同)