例如,我有隐藏某些元素的函数,但是我希望公开该行为,以便外部脚本可以在隐藏元素后执行
(function($){
function hide_element() {
$('#my_element').hide();
}
})(jQuery);
我想通过其他脚本轻松扩展此API。有没有最佳实践来实现这一目标。
答案 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
函数上有正确的文档,告知它所暴露的内容。