Javascript: "!= " Оператор не работает должным образом

Добрый вечер!

Я сталкиваюсь со странным поведением с моей js/jquery, для простой функции, где я получаю последний идентификатор строки, чтобы проверить, отличается ли он от предыдущего:

oldMsgId = 0;

// Ajax...
currentId = $( ".message_container tr:last" ).attr('id');
checkNewMsg(currentId);
// ... End Ajax.

function checkNewMsg(MsgId) {
 if (MsgId != oldMsgId) {
  var snd_msg = new Audio('sound/msg.wav');
  snd_msg.volume = 0.3;
  snd_msg.play();
 }
 oldMsgId = MsgId ;
}

Система работает, однако, когда новые сообщения не извлекаются, а это означает, что последний идентификатор равен старому идентификатору, он все равно выполняет условие!

Конечно, он будет выполняться после загрузки страницы, потому что oldMsgId установлен в 0, но после этого путем тестирования с оповещениями он показал, что условие выполняется так, как не должно!

Это сводит меня с ума, если у кого-то есть решение, я был бы рад услышать это:)

РЕДАКТИРОВАТЬ: РАЗРЕШЕНО

Well, while using alerts inside the function this time, it appears I have made a huge mistake placing my oldMsgId var inside a loop function (which calls to ajax), so, the variable was reset to 0 everytime and thus made the difference, I'm very sorry xD!

Проблема решена, спасибо всем!

1 ответ

Что ж, при просмотре с предупреждениями внутри функции на этот раз, похоже, я совершил огромную ошибку, поместив мою переменную oldMsgId в функцию цикла (которая вызывает ajax), извините, xD!

Проблема решена, спасибо всем!

Другие вопросы по тегам