我有一个简单的代码,例如http://jsfiddle.net/9braK/2/
$(function(){
$('body').append(
$("<a/>").attr({ "id": "foo", "href":"#" })
.text("click me")
.live("click",function(e){
e.preventDefault();
alert("Hello World!");
})
);
});
根据docs这应该有用,对吗?
答案 0 :(得分:2)
DOM遍历方法不是 支持查找要发送的元素 为了活着()。相反,.live()方法 应始终直接调用 选择器,如上例所示。
因此,代码中唯一的问题是使用live()
。 "<a/>"
不是选择器,live()
的工作方式将无法找到相应的元素。如果您只是使用.click()
,它当然会完美无缺。
您可以使用类似
的内容$('body')
.append(
$("<a/>")
.attr({ "id": "foo", "href":"#" })
.text("click me")
)
)
.delegate("#foo", "click", function(e){
e.preventDefault();
alert("Hello World!");
});
实现您的目标(但我认为根据您的使用情况,简单click()
就足够了。)
答案 1 :(得分:0)
这个有效:
$(function(){
// Add the click event for all future elements having the id #foo
$('#foo').live("click",function(e){
e.preventDefault();
alert("Hello World!");
});
$('body').append(
$("<a/>").attr({ "id": "foo", "href":"#" })
.text("Continue ")
);
});