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);

これはページ コードです。ここではウィジェットを作成し、ディスカッション ウィジェット コントロールのメソッド ロードを呼び出しています。:

(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));
4

2 に答える 2

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)
        }
    });
});
于 2013-09-23T10:53:53.420 に答える