Как реализовать наследование в виджете JQuery UI

Я пытаюсь наследовать метод от базового виджета к другому виджету. вот мой пример кода

Мой базовый виджет

$(function () {
    $.widget("UI.baseWidget", {
        options: {
            testVal:''
        },
        _create: function () {
            alert(this.option.testVal);
        },

    });
});

и другой виджет, вызывающий этот базовый виджет

$(function () {
    $.widget("UI.MyWidget", $.UI.baseWidget, {
        options: {
          testVal:''
        },
        _create: function () {
            $.UI.baseWidget.prototype._create.call(this);
        }

    });
});

и инициализировать код MyWidget '

$('#mydiv').MyWidget({testVal:'test widget'})

Как мы можем передать опцию testVal из MyWidget в вызов baseWidget? и я получаю ошибку что-то вроде

Uncaught TypeError: я не конструктор

Uncaught TypeError: $(...).MyWidget не является функцией

Пожалуйста, помогите мне решить эту проблему. заранее спасибо

1 ответ

Кажется, работает хорошо: я сделал только одно исправление: изменил опцию на опции в alert(this.option.testVal); и предупреждение с "тестовым виджетом" появилось в порядке. Вы также можете попробовать создать виджет JQuery onReady и посмотрите, решит ли это проблему, т.е.

$(function () {
    $('#myDiv').MyWidget({testVal:'test widget'});
});

Смотрите мой код на https://jsfiddle.net/5gmn6x7k/4/

Другие вопросы по тегам