Столкнулась с проблемой обновления блока, в котором отображаю сообщения
Вызываю функцию и передаю в нее id, но блок не обновляется по заданному времени
<a href"#" onclick="msgUpd('<?=$conv['id']?>');" >
<script>
var id;
function msgUpd(id) {
$(".comments-list").load("/getpm/"+id);
usrto = $("#usrto").val();
cid = $("#cid").val();
$("#user_to").val(usrto);
$("#conversation_id").val(cid);
}
setInterval(msgUpd, 3000);
</script>
Подскажите, пожалуйста, как это решить?
Вот тут вы вызываете msgUpd
с аргументом '<?=$conv['id']?>'
:
onclick="msgUpd('<?=$conv['id']?>');"
Могу предположить, что этот вызов работает.
А в setInterval
вы передаете вашу функцию msgUpd
без аргументов:
setInterval(msgUpd, 3000);
И setInterval
ее, соответственно, вызывает без аргументов.
Такой вариант из комментариев не подойдет:
setInterval(msgUpd(id), 3000);
Ибо тогда вы вызовете msgUpd
единожды с аргументом id
. Функция вернет undefined
, который вы и передадите в качестве первого аргумента для setInterval
.
Если вам нужно отправить на перезагрузку последнее значение id
, поправьте ваш код:
var lastId;
function msgUpd(id) {
$(".comments-list").load("/getpm/"+id);
usrto = $("#usrto").val();
cid = $("#cid").val();
$("#user_to").val(usrto);
$("#conversation_id").val(cid);
lastId = id;
}
setInterval(function() { msgUpd(lastId) }, 3000);
Внутри функции msgUpd
сохраняем переданный аргумент id
в переменную lastId
. А для setInterval
передаем аргумент function() { msgUpd(lastId) }
- функция, внутри которой мы вызываем msgUpd
с аргументом, в котором уже есть сохраненный последний id
.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как с помощью JS добавить правильно к элементам SVG <title>, чтобы визуально появлялось сообщение, размещенное внутри tooltip? SVG грузится , а не рисуется...
Нужно уменьшить отступ между знаком списка и текстом, а так же пофиксить ширину средней ячейки и отступ второй картинки убрать
почему на мобильных браузерах стиль min-width не работает кроме chrome android: