【问题标题】:How to add an event after replaceWith()?如何在 replaceWith() 之后添加事件?
【发布时间】:2014-09-23 19:20:19
【问题描述】:

我需要在replaceWith() 之后使用bind() 添加一个事件,但是元素只有在replaceWith() 执行后才存在。 元素加载后如何添加事件?

我的代码如下所示:

$.ajax({ 类型:'GET', url: trElement.find(".editRecord").attr("href") + '?id=' + tdId.html(), 成功:函数(数据,文本状态,jqXHR){ trElement.replaceWith(数据); trElement.find(".btnEditRecord").bind("点击", 保存); trElement.find(".btnCancelEditRecord").bind("点击", 取消); } });

如果可以,请举例说明。

非常感谢。

【问题讨论】:

  • 您刚刚将trElement 替换为data,所以trElement 消失了,添加事件处理程序没用,而是将事件处理程序附加到data
  • 或者在加载DOM的时候使用事件委托,这样动态加载新元素后就不需要做任何事情了。见stackoverflow.com/questions/203198/…

标签: javascript jquery events replacewith


【解决方案1】:

调用replaceWith后,该元素不再存在于DOM中。您需要将事件绑定到新元素:

var $data = $(data);
trElement.replaceWith($data);
$data.find(".btnEditRecord").bind("click", save);
$data.find(".btnCancelEditRecord").bind("click", cancel);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多