Я мучительно пытаюсь расширить jquery в класс ES6, а затем перевести с помощью Babel. Все работает фактически, за исключением того, что каждый раз, когда я вызываю унаследованную функцию jQuery, jQuery, кажется, каждый раз вызывает конструктор. Это очевидно в этой скрипке. Также trigger
, кажется, называется 4 раза.Расширение конструктора вызовов jQuery при каждом вызове метода
(transpiled код) https://jsfiddle.net/w3bbzgrn/1/
Это исходный код
class Popup extends jQuery.fn.init {
constructor(t) {
super(t);
this.init(t);
return this;
}
test(){
this.trigger('test', 55)
return this
}
}
class Foo extends Popup{
constructor(t){
super(t)
console.log("I get called")
return this
}
}
var t = $('<div>hi</div>')
var f = new Foo(t);
f.on('test', function(e,args){
console.log(args)
})
f.appendTo('body').test().slideUp()
Что такое объект более высокого уровня здесь? Какую проблему ты пытаешься решить? Это не то, как создать плагин для jQuery – charlietfl
Не понимаю, почему вы хотите расширить 'jQuery.fn.init' – charlietfl
Мое намерение состоит в том, чтобы предоставить нечто вроде генератора таблицы, который имеет множество своих функций (например, update, addRow и т. д.), но затем наследует все функции jQuery, такие как appendTo, slideUp и т. д., которые будут применены к элементу обертки таблицы. – BarryBones41