2013-09-23 5 views
0

Я начинаю с JQuery & Html. Я создаю виджет, называемый мастером обсуждения. во время работы, я получаю ниже ошибки: Object [объект Object] не имеет метода 'discussionwidget'Объект [object Object] не имеет метода 'discussionwidget'

Не уверен, что может быть причиной того же: Пожалуйста, помогите:

код виджета:

(function ($, undefined) { 
    $.widget('ui.discussionwidget', { 
     options: { 
      userName : 'Arti Agarwal', 
      title:"", 
      width:"", 
      containerClass:".ui-content-gutter" 
     }, 

     _create: function() { 
      //Create the structure of Discussion Widget 
      var widgetStructure = '<div class="ui-discussion hGridPx_120 wGridPx_10"><div class="ui-discussion-header hGridPx_18 wGridPx_10"></div><div class="ui-discussion-container hGridPx_100 wGridPx_75"><div class="ui-discussion-messages hGridPx_75 wGridPx_74"> <ul id="ui-discussion"></ul></div> <div class="ui-discussion-input hGridPx_10 wGridPx_10"><label class="input hGridPx_10 wGridPx_60"><span>Add or reply to a comment...</span><textarea id="message" class="hGridPx_10 wGridPx_60"></textarea></label><div class="ui-discussion-send hGridPx_10 wGridPx_10"><a href="#" id="addchat"><span class="ui-image-addchat">Add</span></a> <a href="#" id="replychat" class="ui-reply-disabled"><span class="ui-image-replychat">Reply</span></a></div></div></div></div>'; 
      widgetStructure.appendTo($($(this.options.containerClass)); 
     }, 
widget: function() { 
      return this.element; 
     }, 

    }); 

    var CloseDiscussionWidget = function() { 

    } 

})(jQuery); 

Я зову его со страницы:

<script> 
     (function ($) { 

      //Load discussion history fist time 
      $(document).ready(function() { 
       GetCurrentUserDetails('arti.agarwa'); 
       Discussionwidget = $('.ui-content-gutter').discussionwidget({ containerClass: ".ui-content-gutter" }); 
     } (jQuery)); 
    </script> 
+1

Что такое '$ .widget'? –

+1

@FelixKling [Завод виджета] (http://jqueryui.com/widget/). – undefined

ответ

0

Существовали несколько синтаксических ошибок в коде, попробуйте

(function ($, undefined) { 
    $.widget('ui.discussionwidget', { 
     options: { 
      userName: 'Arti Agarwal', 
      title: "", 
      width: "", 
      containerClass: ".ui-content-gutter" 
     }, 

     _create: function() { 
      // Create the structure of Discussion Widget 
      var widgetStructure = $('<div class="ui-discussion hGridPx_120 wGridPx_10"><div class="ui-discussion-header hGridPx_18 wGridPx_10"></div><div class="ui-discussion-container hGridPx_100 wGridPx_75"><div class="ui-discussion-messages hGridPx_75 wGridPx_74"> <ul id="ui-discussion"></ul></div> <div class="ui-discussion-input hGridPx_10 wGridPx_10"><label class="input hGridPx_10 wGridPx_60"><span>Add or reply to a comment...</span><textarea id="message" class="hGridPx_10 wGridPx_60"></textarea></label><div class="ui-discussion-send hGridPx_10 wGridPx_10"><a href="#" id="addchat"><span class="ui-image-addchat">Add</span></a> <a href="#" id="replychat" class="ui-reply-disabled"><span class="ui-image-replychat">Reply</span></a></div></div></div></div>'); 

      //Missing) here 
      widgetStructure.appendTo($($(this.options.containerClass))); 
     }, 
     widget: function() { 
      return this.element; 
     }, 

     destroy: function() { 
      $.Widget.prototype.destroy.call(this); 
     }//extra , here 

    }); 

    var CloseDiscussionWidget = function() { 

    } 

})(jQuery); 

//missing }) here 
(function ($) { 
    // Load discussion history fist time 
    $(document).ready(function() { 
     //GetCurrentUserDetails('arti.agarwa'); 
     Discussionwidget = $('.ui-content-gutter').discussionwidget({ 
      containerClass: ".ui-content-gutter" 
     }); 
    }) 
}(jQuery)); 

Также дом готовый блок может быть записан, как показано ниже - нет необходимости использовать функцию обертку

// Load discussion history fist time 
jQuery(function ($) { 
    GetCurrentUserDetails('arti.agarwa'); 
    Discussionwidget = $('.ui-content-gutter').discussionwidget({ 
     containerClass: ".ui-content-gutter" 
    }); 
}) 
+0

спасибо тонну, ошибка во второй строке была одна. Это был фрагмент кода, который приводит к столь синтаксическим ошибкам. Но теперь он дает «не имеет ошибки« appendTo »метода в той же строке. Любая догадка ?? –

+0

@ user2614405 сделал небольшое изменение в функции _create, см. Обновление –

+0

@ user2614405 'widgetStructure' была строкой, которая не имеет метода' appendTo' ... вы должны создать обертку jQuery –

Смежные вопросы