Jquery событие bind / unbind и lib перехватывает - PullRequest
0 голосов
/ 02 октября 2009

Привет,

Я использую плагин jquery для всплывающих окон. В их JS они имеют следующее событие

/*
   * Bindings
   */
  $(document).bind('close.facebox', function() {
    $(document).unbind('keydown.facebox')
    $('#facebox').fadeOut(function() {
      $('#facebox .content').removeClass().addClass('content')
      hideOverlay()
      $('#facebox .loading').remove()
    })  
  })

Это просто закрыть всплывающее окно. Я хочу подключить часть своего собственного кода к этому close.facebox для тестирования и оповещения.

Так что в моем JS на моей веб-странице я сделал следующее:

<script type="text/javascript">
    // listen to close action on popup


    // submit request
    $("#request-submit").click(function(){

        // Show popup
        jQuery.facebox('something cool');

        // Close Popup Hook
        $(document).bind('close.facebox', function() {
            alert("close action");
        });

    });
</script>

Выглядит нормально, но проблема в том, что он не работает идеально:

В первом всплывающем окне при закрытии отображается предупреждение о закрытии. Во всплывающем окне Seconde действие close отображает ДВЕ оповещения. В третьем всплывающем окне при закрытии отображается ТРИ оповещения, одно за другим.

Вы понимаете, похоже, что старый 'Query.facebox (' что-то крутое '); экземпляры все еще там, слушая событие закрытия.

Есть ли способ исправить это? Спасибо!

1 Ответ

0 голосов
/ 02 октября 2009

Я сделал следующее,

On the JS lib

$(this).trigger('pre_close.facebox');

// Close alert
$(document).bind('pre_close.facebox', function() {
    alert("close action");
    $(document).unbind('pre_close.facebox');
});

Но это не слишком хорошо, так как я должен взломать lib по умолчанию для facebox.

...