2016-04-25 5 views
1

Я пытался обновлять свои сообщения каждые 5 секунд, например, время обновлено, сколько пользователей прокомментировали и сколько им нравится. это код, я пытался до сих пор Некоторые TEXT1 Как изменить несколько div каждые 5 секунд

<div id='poster' class='1'> 
<input type='hidden' value='1' id='post_id'> 
Some text1 
</div> 

<div id='poster' class='2'> 
<input type='hidden' value='2' id='post_id'> 
Some text2 
</div> 

<div id='poster' class='3'> 
<input type='hidden' value='3' id='post_id'> 
Some text3 
</div> 

<div id='poster' class='4'> 
<input type='hidden' value='4' id='post_id'> 
Some text4 
</div> 

в теле есть OnLoad = 'Refresh()' вот что в моих java.js:

function refresh(){ 
var post_id = $("#post_id").val(); 
setTimeout(refresh_post(post_id),5000); 
} 

function refresh_post(post_id){ 
    $("."+post_id+"").load("post.php?post_id="+post_id); 
} 

, но он обновляет только первый div. Остальное остается неизменным.

+1

'' идентификатор должен быть уникальным, use' class' вместо –

+0

до сих пор не работает –

+0

иметь такое же имя класса для всех дивы и использовать каждый цикл будет работать – JiteshNK

ответ

0

Используйте setinterval, если вы хотите обновить сообщение в канун ry 5 секунд непрерывно.

setInterval(function(){ 
$('input:hidden').each(function() { 
var post_id = $(this).attr('id'); 
refresh_post(post_id) 
}); 
}, 5000); 
+0

Обновление только первого div, остальные div остаются неизменными. –

+0

ok loop through all hidden..one thing id должен быть уникальным для всех полей в форме. –

+0

обновил код выше..try, что –

2

Вам необходимо передать функцию или ее ссылку, которая должна быть выполнена в window.setTimeout

Кроме того, необходимо WindowTimers.setInterval()

function refresh(){ 
    var post_id = $("#post_id").val(); 
    setInterval(function(){ 
     refresh_post(post_id) 
    },5000); 
} 

Идентификаторы в HTML должен быть уникальным. Вместо этого вы можете назначить класс conman и использовать class selector. Вы можете хранить post_id в пользовательском data-* т.е. данных идентификатор атрибутов, которые могут быть извлечены с помощью Element.dataset свойства или JQuery в .data(key)

HTML

<div class='poster' data-id="1"> 
<input type='hidden' value='1'> 
Some text1 
</div> 

<div class='poster' data-id="2"> 
<input type='hidden' value='2' > 
Some text2 
</div> 

<div class='poster' data-id="3"> 
<input type='hidden' value='3'> 
Some text3 
</div> 

<div class='poster' data-id=""> 
<input type='hidden' value='4'> 
Some text4 
</div> 

Script

function refresh(){ 
    $('.poster').each(function(){ 
     var post_id = this.dataset.id; // $("#post_id", this).val(); 
     var self = _this; 
     setInterval(function(){ 
      $(self).load("post.php?post_id="+post_id); 
     },5000); 
    }); 
} 
+0

не работает, обновляет только первый div, остальное остается неизменным. –

+0

@RichardCheng, см. Обновленный ответ – Satpal

+0

Полностью ничего не делает после обновления моего скрипта до созданного скрипта. –

0

Метод getElementsByClassName() возвращает набор элементов DOM, которые имеют определенное имя класса.

setInterval(function(){ 

var elements = document.getElementsByClassName("poster"); 
for (var i = 0, len = elements.length; i < len; i++) { 
    var post_id = elements[i].id; 
    refresh_post(post_id) 
} 

}, 5000); 
0

попробовать этот

old_html является Div идентификатор, который вы хотите динамическую нагрузку.

новыйКонтакт получение динамического div с другой страницы.

<script> 

    setInterval(function() { 
     $('div#old_html').load('http://<?php echo $_SERVER['HTTP_HOST'] ?>/pbartest.php #newContent'); 
    }, 5000); </script> 
Смежные вопросы