我已将回调和触发事件添加到插件中,如下所示:
// located at the point where the event and callback should be called
el.trigger('initialized', el);
if ($.isFunction(options.onInitialize)) { options.onInitialize(el); }
但是我找到了另一种方法:
// located at the beginning of the script, after the options are extended
if ($.isFunction(options.onInitialize)) { el.bind('initialized', options.onInitialize; }
// located at the point where the event should be called
el.trigger('initialized', el);
所以,我的问题是,在第一种方法的回调之前触发事件是否重要,或者我应该切换到使用第二种方法同时发生的第二种方法?
更新:到目前为止,我提出的唯一原因是最小化函数调用 - $.isFunction
仅在第二个示例中调用一次。
答案 0 :(得分:0)
我最终选择了第二种方法。由于每个周期调用$.isFunction()
,因此只执行一次就更有效。我也可以缓存结果......所以我猜两种方法都可以正常工作。