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!
Проблема решена, спасибо всем!