У меня есть модуль с разными методами. Один из методов вызывает другой метод в setTimeout, и мне нужно передать некоторые значения второму методу, который называется
Сначала я сделал это
transitSlide: function() {
var left = parseInt(this.$ul.first().css('left')),
newLeft = parseInt(left) + 100 ,
index = (newLeft / 100),
bool = (newLeft <= (this.slideShow.length - 1) * 100); // this is always TRUE
this.$a.removeClass();
this.$ul.addClass('fade');
setTimeout(this.changeSlide.bind(this), 400);
return bool; // I need to pass newLeft variable too !!!
}
changeSlide() {
if (this.transitSlide) {
alert('true') // this works!
} else {
alert('false')
}
}
но мне нужно передать больше значений, чем я сделал это
transitSlide: function() {
var left = parseInt(this.$ul.first().css('left')),
newLeft = parseInt(left) + 100 ,
index = (newLeft / 100);
this.$a.removeClass();
this.$ul.addClass('fade');
setTimeout(this.changeSlide.bind(this), 400);
return {
direction: (newLeft <= (this.slideShow.length - 1) * 100) ? true : false, // this is always TRUE
// direction: true // also doesnt work !!!
newLeft: newLeft
}
}
changeSlide() {
if (this.transitSlide.direction) {
alert('true')
} else {
alert('false') // this doesnt work!
}
}
, но он не возвращает true для второго метода, даже когда я просто подставляю значение true, тогда я обнаружил, что должен () вызвать его тогда янаписал
transitSlide: function() {
var left = parseInt(this.$ul.first().css('left')),
newLeft = parseInt(left) + 100 ,
index = (newLeft / 100);
this.$a.removeClass();
this.$ul.addClass('fade');
setTimeout(this.changeSlide.bind(this), 400);
return {
direction: (newLeft <= (this.slideShow.length - 1) * 100) ? true : false, // this is always TRUE
newLeft: newLeft
}
}
changeSlide() {
if (this.transitSlide().direction) {
alert('true') // this works! but setTimeout call it over and over !!!
} else {
alert('false')
}
}
но setTimeout заставляет его работать снова и снова (бесконечный цикл)
что я могу сделать в этой ситуации?Как я могу передать эти значения и получить к ним доступ во второй функции, не вызывая ее