Javascript/JQuery : 需要时间延迟
Javascript/JQuery : Need a time Delay
我正在尝试实现一个 jquery 功能来显示一个人的年龄。此代码位于 http://keith-wood.name/countdown.html
如果我取消对警报功能的注释,我目前所做的工作是有效的,但不是没有它。我试过 javascript setTimeout 函数,但它不会等待并立即执行。如果我 运行 它带有 setTimeout 和警报,弹出窗口会立即弹出。
如何以及在何处实现延迟,以便在执行填充它的代码之前加载 html 元素。
function myAgeLoaded( ) {
var austDay = new Date();
austDay = new Date( 1960, 7-1, 18 );
$( "#defaultCountdown" ).countdown({since: austDay, format: 'YOWDHMS'}).delay( 1500 );
}
function display_text( which )
{
$.post( "display.php", { content_changed : 1, which : which }, function( data ){ document.getElementById( "main_text" ).innerHTML = html = data }, "html" );
if( which == 'abt' ){
// alert( which );
myAgeLoaded();
}
return false;
}
警报会起作用,因为它 post 推迟了代码执行,因此 post 我在您点击弹出窗口之前收到数据,这起到了延迟的作用,但是,您在互联网上太慢了,或者你点出来的速度太快了,可能会失效。
而从jQuery.post()可以看出你传入的第3个参数,是一个函数,请求成功后会执行,插入后也应该执行myAgeLoaded
数据到您的页面。所以myAgeLoaded
应该保证在那之后看到#defaultCountdown
。
function myAgeLoaded( ) {
var austDay = new Date();
austDay = new Date( 1960, 7-1, 18 );
$( "#defaultCountdown" ).countdown({since: austDay, format: 'YOWDHMS'}).delay( 1500 );
}
function display_text( which ) {
$.post("display.php", {
content_changed : 1,
which : which
},
// This is the success callback, it'll be called when the request is
// response with success code and data.
function( data ) {
document.getElementById( "main_text" ).innerHTML = html = data;
// Now the page should be filled with content, call the func now.
if (which === 'abt') {
myAgeLoaded();
}
}, "html");
return false;
}
我正在尝试实现一个 jquery 功能来显示一个人的年龄。此代码位于 http://keith-wood.name/countdown.html
如果我取消对警报功能的注释,我目前所做的工作是有效的,但不是没有它。我试过 javascript setTimeout 函数,但它不会等待并立即执行。如果我 运行 它带有 setTimeout 和警报,弹出窗口会立即弹出。
如何以及在何处实现延迟,以便在执行填充它的代码之前加载 html 元素。
function myAgeLoaded( ) {
var austDay = new Date();
austDay = new Date( 1960, 7-1, 18 );
$( "#defaultCountdown" ).countdown({since: austDay, format: 'YOWDHMS'}).delay( 1500 );
}
function display_text( which )
{
$.post( "display.php", { content_changed : 1, which : which }, function( data ){ document.getElementById( "main_text" ).innerHTML = html = data }, "html" );
if( which == 'abt' ){
// alert( which );
myAgeLoaded();
}
return false;
}
警报会起作用,因为它 post 推迟了代码执行,因此 post 我在您点击弹出窗口之前收到数据,这起到了延迟的作用,但是,您在互联网上太慢了,或者你点出来的速度太快了,可能会失效。
而从jQuery.post()可以看出你传入的第3个参数,是一个函数,请求成功后会执行,插入后也应该执行myAgeLoaded
数据到您的页面。所以myAgeLoaded
应该保证在那之后看到#defaultCountdown
。
function myAgeLoaded( ) {
var austDay = new Date();
austDay = new Date( 1960, 7-1, 18 );
$( "#defaultCountdown" ).countdown({since: austDay, format: 'YOWDHMS'}).delay( 1500 );
}
function display_text( which ) {
$.post("display.php", {
content_changed : 1,
which : which
},
// This is the success callback, it'll be called when the request is
// response with success code and data.
function( data ) {
document.getElementById( "main_text" ).innerHTML = html = data;
// Now the page should be filled with content, call the func now.
if (which === 'abt') {
myAgeLoaded();
}
}, "html");
return false;
}