метод виджета не вызывается

0

Я создаю имена виджетов как "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>');
            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));
Теги:

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)
        }
    });
});
  • 0
    Я также нахожу ошибку в своем коде. Либо нам нужно написать его как Discussionwidget = $ ('# Discussion Widget'). DiscussionWidget ({containerClass: ".ui-content-gutter"}). data ('DiscussionWidget'); или как вы сделали это выше. Благодарю.
  • 0
    @ user2614405 это предпочтительный способ при использовании фабрики виджетов
Показать ещё 2 комментария
-1
When you load call jQuery library function again and also use jQuery.noConflict().
  • 0
    Нет, это не работает.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню