javascript
  • jquery
  • events
  • replacewith
  • 2014-09-23 69 views 0 likes 
    0

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

    我的代码看起来是这样的:

     
    $.ajax({ 
        type: 'GET', 
        url: trElement.find(".editRecord").attr("href") + '?id=' + tdId.html(), 
        success: function(data, textStatus, jqXHR) { 
         trElement.replaceWith(data); 
         trElement.find(".btnEditRecord").bind("click", save); 
         trElement.find(".btnCancelEditRecord").bind("click", cancel); 
        } 
    }); 
    

    如果可以的话,请例证了。

    非常感谢。

    +0

    你刚刚更换'trElement'用'data',所以'trElement'走了,没有用添加事件处理程序是,附加事件处理程序'data'而不是 – adeneo 2014-09-23 19:24:34

    +0

    或者在DOM加载时使用事件委托,所以在动态加载新元素后不需要做任何事情。见http://stackoverflow.com/questions/203198/event-binding-on-dynamically-created-elements – Barmar 2014-09-23 19:26:12

    回答

    0

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

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

     相关问题

    • 暂无相关问题^_^