我遇到了下面提供的代码问题,我是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";
}
}
答案 0 :(得分:2)
创建一个函数:
function checkNotes() {
$.get( "getnumber.php", function( data ) {
$( "#notes_number" ).text( data );
if ( parseInt(data) > 0 ) {
$('#notes_signal').show();
} else {
$('#notes_signal').hide();
}
});
}
并在加载,间隔和按钮点击时调用它。
答案 1 :(得分:0)
我会在你的实例中使用.get
var load = $.get('getnumber.php');
答案 2 :(得分:0)
Javascript是异步的,这意味着
if(document.getElementById("notes_number.....
将在
$("#notes_number").load("getnumber.php");
已完成。
所以你必须使用这样的回电:
$("#notes_number").load("getnumber.php",function(){
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";
}
});
此外,我不确定这是否有效elem.style.display = "";
尝试使用'elem.style.display = "block";