C# jquery事件处理程序在重定向并返回到同一页面到同一帧后不工作
我有一个名为main.aspx的主页。在这里,我有两帧a.aspx和b.aspx 代码是C# jquery事件处理程序在重定向并返回到同一页面到同一帧后不工作,c#,jquery,asp.net,C#,Jquery,Asp.net,我有一个名为main.aspx的主页。在这里,我有两帧a.aspx和b.aspx 代码是 <frameset rows="20%,80%"> <frame name="b" src="b.aspx"/> <frame name="a" src="a.aspx"/> </frameset> 在a.aspx中,我有一个带有启动和停止按钮的计时器实现,代码是 <table> <
<frameset rows="20%,80%">
<frame name="b" src="b.aspx"/>
<frame name="a" src="a.aspx"/>
</frameset>
在a.aspx中,我有一个带有启动和停止按钮的计时器实现,代码是
<table>
<tr>
<td>
<input id="txt1" type="text" />
</td>
<td id="td1" runat="server">
<p id="output" class="output">00:00:00</p>
<div id="controls">
<button id="startPause">Start</button>
<button id="reset">Stop</button>
</div>
</td>
</tr>
</table>
<a id="reload" href="demo.aspx"> **Another Demo** </a>
<p id="p1"></p>
00:00:00
开始
停止
我有另一个名为demo.aspx的演示页面,它有指向a.aspx的重定向链接
在b.aspx中,我在这个帧中显示另一个计时器
<table>
<tr>
<td id="td1" runat="server">
<p id="timer" class="displayNone">00:00:00</p>
</td>
</tr>
</table>
00:00:00
在这个b.aspx中,我有两个计时器的计时器实现代码,即a.aspx中的计时器和b.aspx中的计时器,以及b.aspx的javascript代码
var time = 0;
var running = 0;
var prevTdTxtBox;
var temp = 0;
var stopVal;
var tdClientId;
$("table", window.parent.frames['a'].document).on("click", "#startPause", function () {
startPause(this);
});
$("table", window.parent.frames['a'].document).on("click","#reset", function () {
reset(this);
});
function startPause(val) {
tdClientId = $(val).closest('td');
prevTdTxtBox = tdClientId.prev().find("input")[0].id;
$("#" + prevTdTxtBox, window.parent.frames['a'].document).val("00:00:00");
if (tdClientId[0].id != null) {
if (running == 0) {
running = 1;
document.getElementById("timer").className = "output";
increment(val);
$("#" + val.id, window.parent.frames['a'].document).text("Pause");
} else {
running = 0;
$("#" + val.id, window.parent.frames['a'].document).text("Resume");
}
}
}
function reset(val) {
stopVal = val;
running = 0;
$("#p1", window.parent.frames['a'].document).text("The clock time is " + temp + " secs");
time = 0;
$("#" + val.id, window.parent.frames['a'].document).prev().text("Start");
var op = $("#" + $(val).closest('td').find('p')[0].id,
window.parent.frames['a'].document).text();
$("#" + prevTdTxtBox, window.parent.frames['a'].document).val(op);
$("#" + $(val).closest('td').find('p')[0].id,
window.parent.frames['a'].document).text("00:00:00");
document.getElementById("timer").className = "displayNone";
}
function increment(val) {
if (running == 1) {
setTimeout(function () {
time++;
var hrs = Math.floor(time / 10 / 60 / 60);
var mins = Math.floor(time / 10 / 60);
var secs = Math.floor(time / 10 % 60);
if (mins < 10) {
mins = "0" + mins;
}
if (secs < 10) {
secs = "0" + secs;
}
if (hrs < 10) {
hrs = "0" + hrs;
}
temp = secs;
var para = $(val).closest('td').find('p')[0].id;
$("#" + para, window.parent.frames['a'].document).text(hrs + ":" + mins + ":" + secs);
document.getElementById("timer").innerHTML = hrs + ":" + mins + ":" + secs;
increment(val);
}, 100);
}
}
var-time=0;
var运行=0;
var-prevTdTxtBox;
var-temp=0;
var stopVal;
var-tdClientId;
$(“table”,window.parent.frames['a'].document)。在(“click”,“#startPause”,函数(){
开始使用(本);
});
$(“table”,window.parent.frames['a'].document)。在(“click”,“#reset”,函数(){
重置(本);
});
功能启动使用(val){
tdClientId=$(val).closest('td');
prevTdTxtBox=tdClientId.prev().find(“输入”)[0].id;
$(“#”+prevTdTxtBox,window.parent.frames['a'].document).val(“00:00:00”);
if(tdClientId[0].id!=null){
如果(正在运行==0){
运行=1;
document.getElementById(“计时器”).className=“输出”;
增量(val);
$(“#”+val.id,window.parent.frames['a'].document).text(“暂停”);
}否则{
运行=0;
$(“#”+val.id,window.parent.frames['a'].document).text(“Resume”);
}
}
}
功能复位(val){
stopVal=val;
运行=0;
$(“#p1”,window.parent.frames['a'].document).text(“时钟时间为“+temp+”秒”);
时间=0;
$(“#”+val.id,window.parent.frames['a'].document.prev().text(“开始”);
var op=$(“#”+$(val).closest('td').find('p')[0]。id,
window.parent.frames['a'].document.text();
$(“#”+prevTdTxtBox,window.parent.frames['a'].document).val(op);
$(“#”+$(val).closest('td').find('p')[0].id,
window.parent.frames['a'].document).text(“00:00:00”);
document.getElementById(“计时器”).className=“displayNone”;
}
函数增量(val){
如果(运行==1){
setTimeout(函数(){
时间++;
var hrs=数学下限(时间/10/60/60);
var分钟=数学下限(时间/10/60);
var秒=数学下限(时间/10%60);
如果(分钟<10){
分钟=“0”+分钟;
}
如果(秒<10){
secs=“0”+秒;
}
如果(小时<10){
hrs=“0”+小时;
}
温度=秒;
var para=$(val).closest('td').find('p')[0].id;
$(“#”+段落,window.parent.frames['a'].document).text(小时+”:“+分钟+”:“+秒);
document.getElementById(“计时器”).innerHTML=hrs+“:“+mins+”:“+secs;
增量(val);
}, 100);
}
}
当我点击start时,a.aspx和b.aspx中的定时器都在启动,暂停和恢复在这里也可以正常工作
问题是,当我单击a.aspx中的另一个Demo链接时,它将重定向到Demo.aspx,而从Demo.aspx我将使用Demo.aspx中的链接重定向到a.aspx
现在两个计时器都显示了它们工作的相同时间,但当我尝试单击停止和开始按钮时,它们不工作
提前感谢。您能尝试将按钮onclick事件引用为类似“开始”的功能吗?尝试过,但不起作用。您能告诉我startPause(val)中的val是什么吗?您是否尝试在main.aspx页面中使用js函数,然后使用onclick事件引用它?