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": 的一行$(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),只需在您的 javascript 就绪函数中添加以下行,该函数应该在您的文档头部部分中。

$(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 回答