1
/*
* 
*  Facebox also has a bunch of other hooks:
*
*    loading.facebox
*    beforeReveal.facebox
*    reveal.facebox (aliased as 'afterReveal.facebox')
*    init.facebox
*    afterClose.facebox
*
*/

Faceboxを使用しています。ソースコードでいくつかのフックを見つけましたが、「beforeReveal」を使用する行は1行しか見つかりません$(document).trigger('beforeReveal.facebox')。どこで定義されているのかわかりません。だから私はそれがどのように機能するのだろうか。助けを得たいと思っています。ありがとう!

4

2 に答える 2

2

これらはclick、サブスクライブできる単なるカスタムイベントです(たとえば、事前定義されたイベントです)。

$(document).on('beforeReveal.facebox', function() {
    // This code here is now executed every time before the facebox is revealed,
    // because Facebox triggers this event.
});

ドキュメントで詳細を読む:http://api.jquery.com/trigger/

于 2012-08-07T09:12:10.703 に答える
1

これらのトリガーを明確にするために、実際にはfacebox.jsソースコードで定義された関数を呼び出していません。それらは、何かがそれを処理するためにそこにあるかどうかにかかわらず、イベントを発生させる単なるトリガーです。ただし、JavaScriptでこれらの関数を定義すると、faceboxイベントが発生したときに呼び出されます。

たとえば、afterReveal.facebox(またはbeforeReveal)に応答する場合は、ドキュメントヘッドセクションにあるはずのjavascriptready関数に次の行を追加するだけです。

$(document).ready (function() {
     //initialize facebox
     $('a[rel*=facebox]').facebox(); 

     //create a response to the 'close.facebox' event
     $(document).bind('close.facebox', function() {
          //some function on close if you desire          
     });

     //Create a response to the the 'afterReveal.facebox' event
     $(document).bind('afterReveal.facebox', function() { 
            //Add your functionality here
            $('textarea').autogrow();
            return true;
      });
});
于 2012-08-22T20:23:19.673 に答える