如何在DocumentReady中使用javascript类
我将此倒计时脚本包装为位于单独文件中的对象 然后,当我想设置计数器时,倒计时类中的超时函数无法再次找到我在文档中已设置好的对象。 我认为文档中设置的所有内容都已准备就绪,并已转换到该范围, 但是,可以在其他文档就绪中调用函数 是否有人能解决我如何设置多个计数器斜杠对象的问题。 或者这些基本的javascript类必须成为插件吗 这是一节课如何在DocumentReady中使用javascript类,javascript,jquery,counter,Javascript,Jquery,Counter,我将此倒计时脚本包装为位于单独文件中的对象 然后,当我想设置计数器时,倒计时类中的超时函数无法再次找到我在文档中已设置好的对象。 我认为文档中设置的所有内容都已准备就绪,并已转换到该范围, 但是,可以在其他文档就绪中调用函数 是否有人能解决我如何设置多个计数器斜杠对象的问题。 或者这些基本的javascript类必须成为插件吗 这是一节课 function countdown(obj) { this.obj = obj; this.Div = "c
function countdown(obj)
{
this.obj = obj;
this.Div = "clock";
this.BackColor = "white";
this.ForeColor = "black";
this.TargetDate = "12/31/2020 5:00 AM";
this.DisplayFormat = "%%D%% Days, %%H%% Hours, %%M%% Minutes, %%S%% Seconds.";
this.CountActive = true;
this.DisplayStr;
this.Calcage = cd_Calcage;
this.CountBack = cd_CountBack;
this.Setup = cd_Setup;
}
function cd_Calcage(secs, num1, num2)
{
s = ((Math.floor(secs/num1))%num2).toString();
if (s.length < 2) s = "0" + s;
return (s);
}
function cd_CountBack(secs)
{
this.DisplayStr = this.DisplayFormat.replace(/%%D%%/g, this.Calcage(secs,86400,100000));
this.DisplayStr = this.DisplayStr.replace(/%%H%%/g, this.Calcage(secs,3600,24));
this.DisplayStr = this.DisplayStr.replace(/%%M%%/g, this.Calcage(secs,60,60));
this.DisplayStr = this.DisplayStr.replace(/%%S%%/g, this.Calcage(secs,1,60));
//document.getElementById(this.Div).innerHTML = this.DisplayStr;
$('#'+this.Div).text(this.DisplayStr);
$('#tel').text(parseInt( $('#tel').text() )+1);
if (this.CountActive) setTimeout(this.obj +".CountBack(" + (secs-1) + ")", 990);
}
function cd_Setup()
{
var dthen = new Date(this.TargetDate);
var dnow = new Date();
ddiff = new Date(dthen-dnow);
gsecs = Math.floor(ddiff.valueOf()/1000);
this.CountBack(gsecs);
}
firebug说它在超时功能中出错
谢谢,Richard在本地范围内定义了cd1。setTimeout将在window[global]作用域中运行作为参数1传递的函数,在您的情况下,window.cd1是未定义的 您的问题的解决方案是使cd1成为一个全局变量。[删除cd1声明中的“var”]
离题:我建议您考虑使用匿名函数,因为它们有时会使您的代码更加美观/易读。,您提供给我们的信息没有为我们的成员提供有用的上下文来帮助您。你也可以发帖子说“我的程序不起作用,救命。”。老实说,我并不是想表现得不尊重别人。所以会员们不知道在你们的计划中“这”是什么定义?目前,我认为
this==window
的计算结果会是真的吗?对不起,请稍等,我会发布我不知道的关于var的全部内容,谢谢,我正在查看jquery插件计数器页面,如果你能推荐一个很棒的,我只需要在下一个ajax调用之前进行计算。如果不知道,也可以。然后我必须检查所有这些。
$(document).ready(function() {
var cd1 = new countdown('cd1');
cd1.Div = "clk";
cd1.TargetDate = "08/15/2010 8:00 PM";
cd1.DisplayFormat = "%%D%% days, %%H%% hours, %%M%% minutes, %%S%% seconds until event AAA happens";
cd1.Setup();