2016-08-18 6 views
1

Я пытаюсь наследовать метод от базового виджета до другого виджета. вот мой пример кодаКак реализовать наследование в виджета 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); 
     } 

    }); 
}); 

и initilise в MyWidgetcode является

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

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

неперехваченным TypeError: я не конструктор

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

может помочь мне исправить это. вопрос. Заранее спасибо

ответ

2

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

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

Посмотреть мой код на https://jsfiddle.net/5gmn6x7k/4/

+0

HI @Dhananjay Я уже включают Jqury библиотеку пользовательского интерфейса. Тем не менее, есть ошибка «Uncaught TypeError: i не является конструктором» – Arun

+0

@Arun Создайте новую скрипту или измените мой скриптовый код, чтобы реплицировать проблему, если это возможно – Dhananjay