我在下面提供的代码中遇到问题,而且我是 Javascript 和 Jquery 的新手。代码应该做的是在加载时获取“未读通知”的数字,然后将该数字放在名为 notes_number 的 div 中。然后它应该从 notes_number 中读取数字,并根据数字是否大于 0 显示名为 notes_signal 的 div。
我在加载时执行此操作,每 5 秒执行一次,然后每当按下通知按钮时执行此操作。该代码不起作用,因为在加载时它没有在 notes_number div 中放入数字。其他事件也不起作用。有一次我认为它正在工作,但现在我无法弄清楚发生了什么。这是代码:
//THIS IS TO CHECK WHEN THE PAGE COMES UP
$("#notes_number").load("getnumber.php");
if(document.getElementById("notes_number").innerHTML > 0){
var elem = document.getElementById("notes_signal");
elem.style.display = "";
}
if(document.getElementById("notes_number").innerHTML == 0){
var elem = document.getElementById("notes_signal");
elem.style.display = "none";
}
//THIS IS TO CHECK EVERY 5 SECONDS
window.setInterval(function(){
$("#notes_number").load("getnumber.php");
if(document.getElementById("notes_number").innerHTML > 0){
var elem = document.getElementById("notes_signal");
elem.style.display = "";
}
if(document.getElementById("notes_number").innerHTML == 0){
var elem = document.getElementById("notes_signal");
elem.style.display = "none";
}
}, 5000);
//THIS IS TO CHECK WHEN THE BUTTON IS PRESSED
function toggleDiv(divId) {
$("#"+divId).show();
$(document).ready(function(){
$("#myContent").load("getnotes.php?page=<? echo $page; ?>");
});
$("#notes_number").load("getnumber.php");
if(document.getElementById("notes_number").innerHTML > 0){
var elem = document.getElementById("notes_signal");
elem.style.display = "";
}
if(document.getElementById("notes_number").innerHTML == 0){
var elem = document.getElementById("notes_signal");
elem.style.display = "none";
}
}
最佳答案
创建一个函数:
function checkNotes() {
$.get( "getnumber.php", function( data ) {
$( "#notes_number" ).text( data );
if ( parseInt(data) > 0 ) {
$('#notes_signal').show();
} else {
$('#notes_signal').hide();
}
});
}
并在加载、间隔和按钮点击时调用它。
关于Javascript 函数不在加载时获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18905098/