@zeni1agent

Как проверить переменную на изменение?

Я хочу периодически проверять изменился ли css элемента и если да то обновить код если нет то ничего не делать.

.block{
top:10px;
left:19px;
transition: 1s;
}
.block_active{
top:130px;
left:150px;
}


setInterval(function () {
top = parseInt($('.block').css("top"));
left = parseInt($('.block').css("left"));
if(top != ??? && left != ???){
invert_top = (0-top)
invert_left = (0-left)
$('style').html('#div1{top:'+top+'px;left:'+left+'px;}#div2{top:'+invert_top+'px;left:'+invert_left+'px;}')
}
}, 10)
$('.button').on('click', function(e){
		e.preventDefault();
		$('block').toggleClass('block_active');
})

Нельзя поставить дополнительно width2 и height2 вне setInterval и проверять совпадение

top2 = parseInt($('.block').css("width"));
left2 = parseInt($('.block').css("height"));
setInterval(function () {
top = parseInt($('.block').css("width"));
left = parseInt($('.block').css("height"));
if( top !=top2  && left !=left2){
...
}
}, 10)

И нельзя вставить код во внутрь
$('.button').on('click', function(e){
		e.preventDefault();
		$('block').toggleClass('block_active');
})

так как функций-событий у меня не одна а несколько и прописывать каждый раз код не имеет смысла
  • Вопрос задан
  • 84 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Tendor
Зачем периодический проверять изменения?
Можно делать проверку
if( width !=width2  && height !=height2 ){
...
}

в тот момент когда происходят изменения, то есть в том месте кода где задаются/изменяются стили.

Если это несколько мест, можно триггерить свой event элемента и подписаться на него делая проверку при вызове этого event.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы