Как очистить последний обратный вызов события bind () в jQuery? - PullRequest
0 голосов
/ 08 сентября 2011

Мне нужно динамически связать () событие click, но проблема в том, что, когда я связываюсь во второй или третий раз, последний вызов bind () - ed также сработает. Как очистить колбэки событий последнего связанного ()? И перезаписать событие click с помощью этой новой функции обратного вызова?

Обратите внимание, что event - это пользовательский объект, а не объект события javascript.

function showEditModal(event, callback)
{
    $("#dialog-form").dialog('open');

    $('#place').val(event.metadata.place);
    $('#type').val(event.metadata.type);
    $('#city').val(event.metadata.city);

    $('#dialog-form .button-save').show().click(function()
    {
        event.metadata.place = $('#place').val();
        event.metadata.type = $('#type').val();
        event.metadata.city = $('#city').val();

        $('#dialog-form').dialog('close');

        callback(event);
    });
}

1 Ответ

1 голос
/ 08 сентября 2011

Как насчет использования one ? Этот метод идентичен .bind (), за исключением того, что обработчик не связан после первого вызова (на основе документов jQuery)

...