code: function Fab(selector, opts) {
      var _this = this;
  
      _this.$fab = $(selector).eq(0);
      if (!_this.$fab.length) {
        return;
      }
  
      // 已通过 data 属性实例化过，不再重复实例化
      var oldInst = _this.$fab.data('mdui.fab');
      if (oldInst) {
        return oldInst;
      }
  
      _this.options = $.extend({}, DEFAULT, (opts || {}));
      _this.state = 'closed';
  
      _this.$btn = _this.$fab.find('.mdui-fab');
      _this.$dial = _this.$fab.find('.mdui-fab-dial');
      _this.$dialBtns = _this.$dial.find('.mdui-fab');
  
      if (_this.options.trigger === 'hover') {
        _this.$btn
          .on('touchstart mouseenter', function () {
            _this.open();
          });
  
        _this.$fab
          .on('mouseleave', function () {
            _this.close();
          });
      }
  
      if (_this.options.trigger === 'click') {
        _this.$btn
          .on(TouchHandler.start, function () {
            _this.open();
          });
      }
  
      // 触摸屏幕其他地方关闭快速拨号
      $document.on(TouchHandler.start, function (e) {
        if (!$(e.target).parents('.mdui-fab-wrapper').length) {
          _this.close();
        }
      });
    }
docs: 浮动操作按钮实例
  @param selector 选择器或 HTML 字符串或 DOM 元素或 JQ 对象
  @param opts
  @constructor