可以操纵javascript生成的元素吗?

时间:2010-07-16 16:54:31

标签: javascript dynamic object

我有一个用javascript动态生成的页面,它包含几个输入字段和一个按钮。当我点击按钮时,没有任何反应......是因为它是一个javascript对象而不是一个“真正的”dom对象?如果是这样,有没有办法与对象进行交互?

我刚写了一个简单的警告,看看按钮是否正常工作。

jQuery("#button").click(function() {
   alert("yes it's working");
});

在第一页上加载这个工作...我相信第一页加载它是PHP生成的,当我点击到另一个部分时,这个相同的按钮将显示但页面不刷新所以这让我相信当我点击另一个部分,用JS动态重新生成。

现在如果我点击按钮,没有任何反应......没有错误或没有警报......

2 个答案:

答案 0 :(得分:3)

您需要使用.live,因为在您分配处理程序时,该元素不存在。

$('#button').live('click', function() {
});

如果您为了提高效率而使用多个元素执行此操作,您还应该查看委托。

答案 1 :(得分:2)

我想我得到你所说的。

当您运行jQuery('#button')时,它会在那里搜索元素。事件附加到按钮本身,而不是查询字符串#button

但是,jQuery确实提供了你想要的行为。

jQuery('#button').live('click', function () { /* on click event */ });

live附加到查询字符串,而不是元素,因此它将适用于将来生成的任何#button