Написал след. код
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