Jquery 如何将此脚本转换为$(document).ready构造?
我对语法有一些问题: 需要在何处以及如何准备关闭?只有在加载页面后才能加载此脚本Jquery 如何将此脚本转换为$(document).ready构造?,jquery,Jquery,我对语法有一些问题: 需要在何处以及如何准备关闭?只有在加载页面后才能加载此脚本 function wr_hours(item){ //timeout var sek = item.data("timeout"); var min = Math.floor((sek /60)%60) ;//sec var hour = Math.floor((sek / (60*60)) %24) ;//hr var days = Math.floor(sek /(24*60*60)) ;//days var
function wr_hours(item){
//timeout
var sek = item.data("timeout");
var min = Math.floor((sek /60)%60) ;//sec
var hour = Math.floor((sek / (60*60)) %24) ;//hr
var days = Math.floor(sek /(24*60*60)) ;//days
var counterWrapper = $("#b-countdown");
if ( min < 10 ){
min = "0" + min;
}
//CSS
if ( hour != counterWrapper.data("left") ){
var hourClass = hour == 0 ? 1 : hour;
counterWrapper.attr("class", "left-" + hourClass).attr("data-left", hourClass)
}
var time_wr = hour + ":" + min;
item.html(time_wr);
item.data("timeout", (sek - 1) > 0 ? sek - 1 : 24 * 60 * 60);
}
setInterval(function(){
$(".deadline").each(function(){ wr_hours($(this));})
}, 1000);
你的意思是:
$(document).ready(function() {
function wr_hours(item){
//timeout
var sek = item.data("timeout");
var min = Math.floor((sek /60)%60) ;//sec
var hour = Math.floor((sek / (60*60)) %24) ;//hr
var days = Math.floor(sek /(24*60*60)) ;//days
var counterWrapper = $("#b-countdown");
if ( min < 10 ){
min = "0" + min;
}
//CSS
if ( hour != counterWrapper.data("left") ){
var hourClass = hour == 0 ? 1 : hour;
counterWrapper.attr("class", "left-" + hourClass).attr("data-left", hourClass)
}
var time_wr = hour + ":" + min;
item.html(time_wr);
item.data("timeout", (sek - 1) > 0 ? sek - 1 : 24 * 60 * 60);
} setInterval(function(){
$(".deadline").each(function(){ wr_hours($(this));})
}, 1000);
});
但是,由于您在setInterval函数中调用函数wr_hours,另一种方法是将setInterval部分放在$document.readyfunction{…}中 JQuery ready函数可以这样使用:
$(document).ready(function () {
/* ADD YOUR CODE HERE */
});
在您的示例中:
function wr_hours(item){
//timeout
var sek = item.data("timeout");
var min = Math.floor((sek /60)%60) ;//sec
var hour = Math.floor((sek / (60*60)) %24) ;//hr
var days = Math.floor(sek /(24*60*60)) ;//days
var counterWrapper = $("#b-countdown");
if ( min < 10 ){
min = "0" + min;
}
//CSS
if ( hour != counterWrapper.data("left") ){
var hourClass = hour == 0 ? 1 : hour;
counterWrapper.attr("class", "left-" + hourClass).attr("data-left", hourClass)
}
var time_wr = hour + ":" + min;
item.html(time_wr);
item.data("timeout", (sek - 1) > 0 ? sek - 1 : 24 * 60 * 60);
}
$(document).ready(function() {
setInterval(function(){
$(".deadline").each(function(){ wr_hours($(this));})
}, 1000);
});
仅将setInterval部分包装在doc.ready中,如Matt所述。