在AJAX操作之后,绑定事件处理程序不再起作用

Bre*_*ett 1 javascript ajax jquery javascript-events

我将一些jQuery事件处理程序绑定到页面中最初工作正常的元素,但是如果用户选择页面上的单选按钮,则该元素将被删除; 他们可以通过选择另一个单选按钮把它带回来; 但是当数据被AJAX加载回来时,该函数不再从事件处理程序触发.

我绑定它:

jQuery(document).ready(function(){

    jQuery('#buyout_field').mouseleave(function() {
        update();
    });    

    jQuery('#buyout_field').focusout(function() {
        update();
    });

});
Run Code Online (Sandbox Code Playgroud)

所以回顾一下,最初运行正常,但是一旦AJAX删除然后放回数据它就不再运行了.

以下是运行AJAX的代码:

function update() {

    getAjaxData(loadUrl, dataObject, 'GET', 'json')

        .done(function(response) {

            // Add/Hide other data
            jQuery('#buy_now').html(response.buy_now);            

        })

    // End

}

function getAjaxData(loadUrl, dataObject, action, type) {

    return jQuery.ajax({
        type: action,
        url: loadUrl,
        data: dataObject,
        dataType: type
    });    

}
Run Code Online (Sandbox Code Playgroud)

元素buyout_field包含在buy_now元素中.

是不是元素放回DOM或什么?

Man*_*dav 5

试试这个:

jQuery('#buy_now').on('mouseleave', '#buyout_field', function() {
    update();
});

jQuery('#buy_now').on('focusout', '#buyout_field', function() {
    update();
});
Run Code Online (Sandbox Code Playgroud)