0

ご挨拶、

私はfaceboxポップアップ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ポップアップで、閉じるアクションは2つのアラートを表示します。3番目のポップアップで、閉じるアクションは3つのアラートを次々に表示します。

あなたは要点を理解します、それは古い'Query.facebox('何かクールな');'のようです インスタンスはまだクローズイベントをリッスンしています。

これを修正する方法はありますか?ありがとう !

4

1 に答える 1

0

私は次のことをしました、

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');
});

しかし、デフォルトのフェイスボックスライブラリをハックする必要があるので、それはあまり良くありません。

于 2009-10-02T14:02:39.433 に答える