2013-09-23 4 views
0

위젯 이름을 'discussionwidget'으로 만듭니다. create 함수는 기본적으로 호출됩니다. 하지만 호출하려고하는 다음로드 함수가 호출되지 않습니다. 도와주세요 :위젯 메서드가 호출되지 않습니다

(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>'); 
      widgetStructure.appendTo($($(this.options.containerClass))); 
     }, 

load: function (datasource) { 
      //Load the discussion history 
      debugger; 
      var ds = datasource; 
      var message = $.parseJSON(ds.d); 
      $("#ui-discussion").html(null); 
      $.each(message, function (index, item) { 
       if (item.ParentID == "NULL" && item.Display_Text != "") { 
        var content = "<div><div id='empImage'><img src='" + item.emp_thumbnail_src + "'/></div>" + "<div>" + 
            "<label id='empName'>" + item.Enterprise_Id + "</label><label id='chatdate'>" + item.Date + "</label>" + 
            "<label>" + item.Display_Text + "</label><label id='" + item.DiscussionID + "' class='discussionID'>" + item.DiscussionID + "</label></div></div>"; 
        $('<ul><li class="ui-discussion-parentmessage">' + content + '</li></ul>').appendTo('#ui-discussion'); 
       } 

        $('#replychat').addClass('ui-reply-disabled'); 
       } 
      }); 
     }, 

     widget: function() { 
      return this.element; 
     }, 

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

    }); 

    var CloseDiscussionWidget = function() { 

    } 

})(jQuery); 

이 여기에 내가 discussionwidget 제어의 방법 부하를 호출 위젯 &을 만드는 오전, 페이지 코드입니다. :

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

$.ajax({ 
        type: "POST", 
        url: baseURL + "/services/peoplewebservice.asmx/GetDiscussionHistory", 
        dataType: "json", 
        contentType: "application/json; charset=utf-8", 
        success: function (data) { 
         debugger; 
         ($(Discussionwidget)).load(data); 
        } 
       }); 
    }) 
}(jQuery)); 

답변

0

그것은 그것의 작동하지 않는 즉

$('.ui-content-gutter').discussionwidget('load', data) 

같은

jQuery(function ($) { 
    // Load discussion history fist time 
    $('.ui-content-gutter').discussionwidget({ 
     containerClass: ".ui-content-gutter" 
    }); 

    $.ajax({ 
     type: "POST", 
     url: baseURL + "/services/peoplewebservice.asmx/GetDiscussionHistory", 
     dataType: "json", 
     contentType: "application/json; charset=utf-8", 
     success: function (data) { 
      debugger; 
      $('.ui-content-gutter').discussionwidget('load', data) 
     } 
    }); 
}); 
+0

나는 또한 나의 코드에서 실수를 발견했다. Discussionwidget = $ ('# discussionwidget')와 같이 써야합니다. 토론 위젯 ({containerClass : ".ui-content-gutter"}). data ('discussionwidget'); 또는 당신이 그것을 위에 한 방법. 감사. –

+0

@ user2614405 위젯 팩토리를 사용할 때 선호되는 방법입니다. –

+0

@@ Arun : 다시 귀찮게해서 죄송합니다. http://stackoverflow.com/questions/18972942/jquery-event-handler-not-working-when-calling-from-page에서도 도움을받을 수 있습니까? –

-1
When you load call jQuery library function again and also use jQuery.noConflict(). 
+0

Nopes이어야한다. –

관련 문제