Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript asp.net ajax属性值时间戳未定义_Javascript_Asp.net_Asp.net Ajax - Fatal编程技术网

Javascript asp.net ajax属性值时间戳未定义

Javascript asp.net ajax属性值时间戳未定义,javascript,asp.net,asp.net-ajax,Javascript,Asp.net,Asp.net Ajax,我对asp.net ajax中的值分配和检索有问题。时间戳的值未定义 代码: // 类型。registerNamespace(“LabelTimeExtender 1”); LabelTimeExtender 1.ClientBehavior1=函数(元素){ LabelTimeExtender 1.ClientBehavior1.initializeBase(此[element]); this._testelement=this.get_元素(); this._timestamp=this.g

我对asp.net ajax中的值分配和检索有问题。时间戳的值未定义

代码:

//
类型。registerNamespace(“LabelTimeExtender 1”);
LabelTimeExtender 1.ClientBehavior1=函数(元素){
LabelTimeExtender 1.ClientBehavior1.initializeBase(此[element]);
this._testelement=this.get_元素();
this._timestamp=this.get_element().attributes['timestamp'].value;
警报(_时间戳);
},
LabelTimeExtender 1.ClientBehavior1.prototype={
初始化:函数(){
LabelTimeExtender 1.ClientBehavior1.callBaseMethod(这是“初始化”);
设置间隔(该计时器,1000);
警报(“之后”);
},
dispose:function(){
//在此处添加自定义处置操作
LabelTimeExtender 1.ClientBehavior1.callBaseMethod(此为“dispose”);
},
计时器:函数(){
警报(此时间戳);
var splitdate=this.\u timestamp.split(/[:]+/);
警报(拆分日期);
var日期=新日期(此时间戳);
警报(date.toString());
var datenow=新日期();
警报(datenow.toString());
此._元素。innerText=“”;
警报(此._元素);

如果(date.getUTCFullYear,我建议将设置
this.\u timestamp
的代码移动到
initialize
函数中

我的另一个建议是在您自己的代码中使用getter和setter来确保封装。因此,警报实际上是
alert(this.get\u timestamp())
。并且,在
initialize
函数中,您可以调用
this.set\u timestamp(this.get\u元素().attributes['timestamp'].value)

多亏了这个注释,我看到问题实际上出现在setInterval调用中。当调用
window.setInterval(this.timer,1000);
时,当调用
timer
函数时,这个
指的是
窗口,而不是对象。因此,请执行以下操作:

var self = this;
window.setInterval(function () { 
    self.timer(); 
}, 1000);

这将使
this
timer()中引用正确的对象。

问题是,当我尝试访问this.\u timestamp in timer函数时,该值未定义或根本不起作用。仍然没有希望警报(this.get\u timestamp());这一行现在根本没有运行。我真的很累。请做些什么。您可以尝试在中设置这一行,但这可能很困难。您可能希望运行代码以确保没有语法错误。例如,第一个结束括号后有一个逗号,但应该有一个分号。不确定您的意思是什么“你检查结果了吗”。你可以自己检查结果。我正在使用console.log(),因此您需要使用浏览器的控制台。否则,请拨动小提琴并将console.log更改为alert。还有一件事:我不希望出现无限循环,因此我将setInterval替换为setTimeout。我认为这是此处的评论限制,我实际上正在工作,没有时间聊天。小提琴应该为您指路。
var self = this;
window.setInterval(function () { 
    self.timer(); 
}, 1000);