我已经使用jQuery生成了一些html链接并将其附加到某个div
但是当我们附加了这些元素时,我现在无法调用click方法(当它们被硬编码到html时它工作正常)
$('#something a').click(function() ...
有没有人知道这方面的解决方案?
答案 0 :(得分:21)
对这些情况使用.delegate()
:
$('#something').delegate('a', 'click', function() {
这会在click
上附加#something
处理程序,而不是指向...内的<a>
元素,因此它适用于稍后附加的锚点。替代方案(更糟糕的是有几个原因)版本是.live()
,如下所示:
$('#something a').live('click', function() {
答案 1 :(得分:4)
还可以在附加元素时添加[click]事件,如下所示:
$('<someElement>').click(function(){
$('<someElement>').append('<htmlCodeToAppend>');
$('<appendedElement>').click(function() { /* do something */ });
});
这种方法可以完成这项工作,但我不确定是否有任何警告 - 也许其中一位专业人士可以介入这里。
干杯, 埃里克
答案 2 :(得分:0)
您需要使用live函数来确保click事件绑定到已加载页面后已添加到DOM的元素:
$('#something a').live('click',function() .....