C# jquery事件处理程序在重定向并返回到同一页面到同一帧后不工作

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> <

我有一个名为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>
    <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事件引用它?