JS Автообновление диалога

203
26 декабря 2017, 15:43

Столкнулась с проблемой обновления блока, в котором отображаю сообщения

Вызываю функцию и передаю в нее 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>

Подскажите, пожалуйста, как это решить?

Answer 1

Вот тут вы вызываете 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.

READ ALSO
Публикация постов через Vk Api

Публикация постов через Vk Api

Возможно ли реализовать такую идею?

212
Добавление title в SVG средствами JS

Добавление title в SVG средствами JS

Как с помощью JS добавить правильно к элементам SVG <title>, чтобы визуально появлялось сообщение, размещенное внутри tooltip? SVG грузится , а не рисуется...

198
Отступ между текстом и знаком списка

Отступ между текстом и знаком списка

Нужно уменьшить отступ между знаком списка и текстом, а так же пофиксить ширину средней ячейки и отступ второй картинки убрать

281
Проблема в верстке мобильный браузер [требует правки]

Проблема в верстке мобильный браузер [требует правки]

почему на мобильных браузерах стиль min-width не работает кроме chrome android:

178