对 Jquery 的 Tigger 有点疑问

class Plugin {


  constructor(element, options) {

    this._setup(element, options);

    var pluginName = getPluginName(this);

    this.uuid = GetYoDigits(6, pluginName);


    if(!this.$element.attr(`data-${pluginName}`)){ this.$element.attr(`data-${pluginName}`, this.uuid); }

    if(!this.$element.data('zfPlugin')){ this.$element.data('zfPlugin', this); }

    /**

     * Fires when the plugin has initialized.

     * @event Plugin#init

     */

    this.$element.trigger(`init.zf.${pluginName}`);

  }


  destroy() {

    this._destroy();

    var pluginName = getPluginName(this);

    this.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')

        /**

         * Fires when the plugin has been destroyed.

         * @event Plugin#destroyed

         */

        .trigger(`destroyed.zf.${pluginName}`);

    for(var prop in this){

      this[prop] = null;//clean up script to prep for garbage collection.

    }

  }

}

这段代码里面的


this.$element.trigger(`init.zf.${pluginName}`);

不是很懂,代码里面没有声明任何 "init.zf.xxx" 这类事件,那这个 trigger 触发的是什么?


牧羊人nacy
浏览 431回答 2
2回答

墨色风雨

这个事件是提供给使用者使用的,不需要在这里声明,比如element.on(”xxx”,function(){})

呼唤远方

The constructor should also call an _init() method, and if needed an _events() method, followed by a DOM event indicating that the plugin is done being initialized.function Plugin(element, options) {  // ...  this._init();  this._events();  this.$element.trigger('init.zf.plugin');}看到官网的这个表述:followed by a DOM event indicating that the plugin is done being initialized,感觉很迷
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript