Div ID 存在但未被 jQuery 识别
Div with id exists but not recognised by jQuery
我有一个页面每 5 秒将另一个页面加载到 div。
我使用 jQuery 将其加载到 document.ready 上,这有效但在调用 setInterval 函数时不会每 5 秒重新加载一次。
我收到错误 "Cannot read property 'load' of null"
<div id="wallboard"></div>
<script type="text/javascript">
$(document).ready(function(){
//Put in initial data THIS WORKS
$('#wallboard').load('refresh_wall2_test.php');
//Refresh wallboard div every 5 seconds THIS DOESN'T WORK
$(function(){
window.setInterval(
function(){
$('#wallboard').load('refresh_wall2_test.php');
} ,5000);
});
});
</script>
尝试
$(function(){
$('#wallboard').load('refresh_wall2_test.php');
window.setInterval(
function(){
$('#wallboard').load('refresh_wall2_test.php');
} ,5000);
});
})();
在 document.ready 之外定义函数并在其中调用 setInterval。
$(document).ready(function(){
setInterval(foo(page), 5000);
});
var foo = function(page) {
$('#wallboard').load(page);
};
这非常适合我。我把你的 setInterval 函数放在一个变量上,所以如果需要,你可以 clearInterval
$(document).ready(function () {
"use strict";
// Load the window on ready...
$('#wallboard').load('home.php');
//Refresh wallboard div every 5
window.reloadDiv = window.setInterval(
function () {
$('#wallboard').load('refresh_wall2_test.php');
}, 5000);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="wallboard"></div>
首先您不需要 setInterval
。您需要做的就是等待第一次加载完成,在完成回调中,执行 setTimeout
以设置的延迟重新加载 div
。希望对您有所帮助。
$(document).ready(function() {
//Store the reference
var $elem = $('#wallboard');
//Create a named self executing function
(function loadPage() {
$elem.load('refresh_wall2_test.php', function() {
//When the request is complete, do a timeout which calls the function again.
window.setTimeout(function() {
loadPage();
}, 5000);
});
}());
});
我有一个页面每 5 秒将另一个页面加载到 div。
我使用 jQuery 将其加载到 document.ready 上,这有效但在调用 setInterval 函数时不会每 5 秒重新加载一次。
我收到错误 "Cannot read property 'load' of null"
<div id="wallboard"></div>
<script type="text/javascript">
$(document).ready(function(){
//Put in initial data THIS WORKS
$('#wallboard').load('refresh_wall2_test.php');
//Refresh wallboard div every 5 seconds THIS DOESN'T WORK
$(function(){
window.setInterval(
function(){
$('#wallboard').load('refresh_wall2_test.php');
} ,5000);
});
});
</script>
尝试
$(function(){
$('#wallboard').load('refresh_wall2_test.php');
window.setInterval(
function(){
$('#wallboard').load('refresh_wall2_test.php');
} ,5000);
});
})();
在 document.ready 之外定义函数并在其中调用 setInterval。
$(document).ready(function(){
setInterval(foo(page), 5000);
});
var foo = function(page) {
$('#wallboard').load(page);
};
这非常适合我。我把你的 setInterval 函数放在一个变量上,所以如果需要,你可以 clearInterval
$(document).ready(function () {
"use strict";
// Load the window on ready...
$('#wallboard').load('home.php');
//Refresh wallboard div every 5
window.reloadDiv = window.setInterval(
function () {
$('#wallboard').load('refresh_wall2_test.php');
}, 5000);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="wallboard"></div>
首先您不需要 setInterval
。您需要做的就是等待第一次加载完成,在完成回调中,执行 setTimeout
以设置的延迟重新加载 div
。希望对您有所帮助。
$(document).ready(function() {
//Store the reference
var $elem = $('#wallboard');
//Create a named self executing function
(function loadPage() {
$elem.load('refresh_wall2_test.php', function() {
//When the request is complete, do a timeout which calls the function again.
window.setTimeout(function() {
loadPage();
}, 5000);
});
}());
});