如何公开Javascript / Jquery行为,以便可以从外部修改或扩展它

时间:2014-01-16 17:24:24

标签: javascript jquery

例如,我有隐藏某些元素的函数,但是我希望公开该行为,以便外部脚本可以在隐藏元素后执行

(function($){ 
   function hide_element() { 
      $('#my_element').hide(); 
   }
})(jQuery);

我想通过其他脚本轻松扩展此API。有没有最佳实践来实现这一目标。

1 个答案:

答案 0 :(得分:2)

您尝试实现的功能是通过公开您的API以便外部世界对其进行操作来编写软件的好方法。我在编写Drupal模块和Javascript的过程中一直这样做,这使得将来扩展现有行为变得非常容易。因此,尽可能多地向您公开API是非常好的做法。如果您使用的是Jquery,则可以使用Jquery触发器API http://api.jquery.com/trigger/来实现此行为。

例如,您希望在元素完全隐藏后公开元素行为。然后你就可以这样做:

function hide_element() { 

 $('#my_element').hide(function() { 
    $(this).trigger('elementHidden'); 
    //if you want to pass arguments 
    //$(this).trigger('elementHidden', [argument1, argument2]); 
 }); 
} 

这可以像这样从外部扩展

//if no arguments
$('#my_element').on('elementHidden', function () { 
   //they will do their thing

}); 
// if arguments 
$('#my_element').on('elementHidden', function (event, argument1, argument2) { 
   //they will do their thing

}); 

确保您在hide_element函数上有正确的文档,告知它所暴露的内容。