Показать сообщение отдельно
  #8 (permalink)  
Старый 08.01.2014, 21:05
Новичок на форуме
Отправить личное сообщение для diman91 Посмотреть профиль Найти все сообщения от diman91
 
Регистрация: 14.04.2013
Сообщений: 8

Приведу пример модуля
var AppMenu = (function () {
    var _self;
    var _protectFn;

    function AppMenu() {
        _self = this;
    }

    AppMenu.prototype = {
        changeStatus:function(status){
            var elements = _protectFn.getCheckedElements();
            var data = {"req":"changeStatus","status":status,"elements":elements};
            if (elements.length>0) {
                if (confirm("Вы уверены что хотите изменить статус у "+elements.length+" объектов?")) {
                    new ajaxSender({
                        url:'/office/appMenu/status',
                        data:data,
                        success: function(answer){
                            _protectFn.afterChangeStatus(answer);       
                        } 
                    }).send();
                }    
            }
        }
        //и так далее публичные методы
    }

    _protectFn = {
        getCheckedElements:function(){
            var els = [];
            $(".checks").each(function(){
                if ($(this).is(':checked')) {
                    els[els.length] = $(this).attr("data-el");
                }
            });
            return els;
        },
        afterDelete:function(answer){
            //
        }
        //и так далее защишеные методы
    }

    return AppMenu;
})();

Бывает так что надо чтобы элемент создавал новый экземпляр, иногда нужно запустить метод в уже созданном экземпляре. Поэтому вещать на элементы onclick="new blablabla" не всегда подходит. А награмождать лишний код тоже неохото.
Ответить с цитированием