我有一個使用Firebase的新聞訂閱源,並希望能夠通過單擊「查看」所有新聞項目。用於循環Firebase更新的Javascript
HTML:
<ul id="news" class="dropdown-menu" role="menu">
<li id="newsitem_read">Mark all as read</li>
<li id="-K230_cSX_TOYlXfSjul" class="newsitem unread-true">message</li>
<li id="-K247s6SLY4AGliAUIik" class="newsitem unread-true">message</li>
<li id="-K24820ZIQR8LqThIRFb" class="newsitem unread-true">message</li>
</ul>
使用Javascript:
var news = greatnonsens.child('users/<?=$_SESSION['user']['id']; ?>/news_feed/');
var read = document.getElementById('newsitem_read');
read.addEventListener('click', function() {
var to_read = document.getElementsByClassName('unread-true');
// Check news feed is not empty
if (typeof to_read[0] !== 'undefined') {
for (var i = 0; i < to_read.length; i++) {
news.child(to_read[i].id).update({unread: 'false'});
// document.getElementById(to_read[i].id).className = 'newsitem unread-false';
console.log(to_read[i].id);
}
}
});
這是工作,但如果我還運行的document.getElementById(to_read [I] .ID).className =「newsitem未讀假'它只會更新每一秒的新聞內容(與Firebase on。(child_changed)功能相同)。如果我發表評論,所有新聞都會更新。
我錯過了什麼?
太棒了,謝謝:) –
如果它回答你的問題,請點擊我的答案左邊的複選標記來表示。它向其他人表明這是你的「接受」答案。 –