如何在追加后使功能工作

时间:2011-07-21 17:44:59

标签: javascript jquery html

例如我正在使用追加,例如我是一个div的附加按钮,我有函数$('button_id')。点击(...等工作,我附加div,如何我可以这样做。我的意思是我没有错误,但功能没有启动,这是因为我追加然后我想使用该功能,但如何做到这一点,我尝试与委托,但同样的事情。我尝试了功能在按钮标签,onmouseover然后功能的东西,但没有什么它给我功能没有找到。什么是解决方案?

我有两个事件,一个事件是附加按钮的click事件,另一个事件是click事件,如果单击附加的按钮,但是第二个事件不起作用?

4 个答案:

答案 0 :(得分:2)

尝试使用:

$(elem).live(...)

它将在现在和将来绑定事件。

答案 1 :(得分:0)

首先,如果您向我们展示确切的源代码,它总是有帮助的。 $('button_id')是一个不正确的选择器,尝试更多$('#button_id')作为您的选择器。另外,您是否附加动态内容?无论如何,我总是非常成功地使用delegate()函数,但您是否尝试过使用live()函数?此外,还有一件事要确保您拥有最新版本的jQuery作为源。

如前所述,如果你想拥有一个指针,使用类而不是id="some_id"使用class="appended",你就不能有重复的id。要使用jQuery选择那些,请使用像$('.appended')这样的选择器。

答案 2 :(得分:0)

尝试这样的东西,它会按照你的期望工作。

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

  //On click code goes here

}).appendTo($("#div_id"));

答案 3 :(得分:0)

如果没有看到您的代码,很难确定您遇到的问题,但delegate(或live)应该是您想要做的事情的完美之处:

$("body").delegate("#b", "click", function() { 
    alert("ok"); 
});

$("#example").append('<input type="button" id="b" value="Click" />');

点击具有id="b"的元素时,上面的点击处理程序将会触发,无论该元素是否恰好位于DOM中。

然而,正如其他人所说,重要的是要记住ID必须在文档中是唯一的,所以通过它的声音你可能更好地使用类。

您可以看到上面代码运行here的示例。