把这个jQuery语法转成纯JavaScript语法

项目运行在vue环境中,下面这些代码在一个.ts文件中,首先声明了一个class,下面又声明了一个function Plugin(){},最终目的是把一个全新的TimeSlider抛出去,但是在最后这个重新声明赋值的地方,不会写了,请问有什么好方法用传JavaScript来实现这个Jquery语法吗,或者抛弃原来的这个写法,重新做到赋值也可以。

class TimeSlider {
    
    each: any
    
    constructor (elementId, options){
    },
    
    set_time_to_middle(time) {},
    returnMouseupTime(callback) {},
    clearCanvas() {},
    init(time,cell,true){},
    set_options(options){}
}

/**
 * 插件设置
 * @param {*} options 
 */
 function Plugin(options,time,cell,callback) {
    return this.each(function() {
        var _this = $(this);
        var _thisId = this.id;
        var data = _this.data('timeslider');
        if (! data) {
            _this.data('timeslider', new TimeSlider(_thisId, options));
        }
        else {
            if (typeof options == 'string') {
                switch (options) {
                    case 'set_time_to_middle':
                        data.set_time_to_middle(time);
                        break;
                    case 'returnMouseupTime':
                        data.returnMouseupTime(callback);
                        break;
                    case 'init':
                        data.clearCanvas();
                        data.init(time,cell,true);  
                        break;  
                }
            }
            else {
                data.set_options(options);
            }
        }
    });
}

// 重点是我想把下面这句话传承JavaScript的写法
var old = $.fn.TimeSlider;

$.fn.TimeSlider = Plugin;

$.fn.TimeSlider.noConflict = function() {
    $.fn.TimeSlider = old;
    return this;
};
export { TimeSlider }
阅读 783
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题