0

Написал след. код

function DisallowCloseLead() {
    var self = this;
    this.lead_id             = 1;
    this.responsible_user_id = 22;
    this.tomorrow_date       = null;

    this.init = function () {
        console.log('init');
        this.tomorrow_date       = new Date();
        this.tomorrow_date       = self.tomorrow_date.setDate(self.tomorrow_date.getDate()+1);
        this.modal_okno          ='not yet';

    };
    this.addTask = function () {
        console.log('addTask');
      $.post('/api/v2/tasks', {
        add:[{
           'element_id':self.lead_id, 
           'element_type':"2", 
           'task_type':"1", 
           'text':$('input[name="body"]').val(),
           'responsible_user_id':self.responsible_user_id,
           'complete_till_at':$('.tasks-date__caption-date').text() === 'Завтра' ?  self.tomorrow_date : $('.tasks-date__caption-date').text()+' '+$('.tasks-date__caption-time').text().split('-')[1],
           'duration':$('input[name="duration"]').val()? $('input[name="duration"]').val():0
            }]
          });
        $('.modal-todo').hide();
        $(document).off('click,mousedowm,mouseup','body');
        document.body.onclick = document.body.onmousedown = document.body.onmouseup = null;
    };
    this.getTasks = function(allowtasks) {
        console.log('getTasks');
        $.getJSON('/api/v2/tasks?type=lead&element_id='+self.lead_id).done(function (res) {
                    var i=0;
                    res._embedded.items.some(function (item) {
                         if(!item.is_completed) i++; });
                    console.log('stolko'+i);
                    if(i <= allowtasks )
                        // $(document).on('click,mousedowm,mouseup','body',self.blockMouse);
                        document.body.onclick = document.body.onmousedown = document.body.onmouseup = self.blockMouse;
                      });
    };
    this.blockMouse = function handler(e) {
        console.log('handler');
                        if($('.modal-todo').find(e.target).length == 0 && 
                            $('.tasks-date__wrapper-inner').find(e.target).length == 0 && 
                                $('#control_overlay').length==0 && 
                                    $('.js-modal-confirm').find(e.target).length == 0){
                                        alert("Поставить следующую задачу");
                                        if($('.modal-todo').length == 0) 
                                            $('#card_holder').before(self.modal_okno);
                                         else $('.modal-todo').show();
                                    }
                          };
        $(document).off('click.AddDealCardTask','.js-task-submit');
        $(document).on('click.AddDealCardTask','.js-task-submit',self.addTask);
        $(document).ready(function () {
            self.init();
            self.getTasks(0);
        });
        // $('.js-task-result-button,.button-cancel.js-note-delete-btn').off('click.checkIsTask');
        $(document).on('click','.js-task-result-button,.button-cancel.js-note-delete-btn',function () {
            //,.button-cancel.js-note-delete-btn
            self.getTasks(1);
            console.log('обработчик клика по выполнению1');
        });
}

    DisallowCloseLead();

Проблема в том, что не срабатывает обработчик. Он работал до того, как я не определил весь код в функцию DisallowCloseLead() с использованием this и self

$(document).on('click','.js-task-result-button,.button-cancel.js-note-delete-btn',function () {
            //,.button-cancel.js-note-delete-btn
            self.getTasks(1);
            console.log('обработчик клика по выполнению1');
        });
  • как минимум нужно добавить new при вызове – Grundy Apr 24 '19 at 12:24
  • 1
    @Grundy такое впечатление что у Вас написан скрипт и Вам приходят уведомление о вопросах про потерю контекста вызова =) – Stranger in the Q Apr 24 '19 at 12:26
  • @StrangerintheQ у него не просто скрипт, у него целый ИИ на это дело написано) – Stepan Kasyanenko Apr 24 '19 at 12:53

0 Answers0