什么是facebox'钩子'

时间:2012-08-07 09:09:03

标签: javascript jquery facebox

/*
* 
*  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')。我找不到它的定义。所以我想知道它是如何工作的。希望得到一些帮助。很多!

2 个答案:

答案 0 :(得分: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/

答案 1 :(得分:1)

澄清这些触发器实际上并不是调用facebox.js源代码中定义的函数。它们只是激发事件的触发器,无论是否有处理它的东西。但是,如果您在javascript中定义这些函数,则会在facebox事件发生时调用它们。

例如,如果您想要响应afterReveal.facebox(或之前的Reveal),只需在您的javascript ready函数中添加以下行,该行应位于文档头部分。

$(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;
      });
});