重定向并返回到同一帧的同一页面后,jquery事件处理程序无法正常工作

时间:2015-03-11 07:44:32

标签: c# jquery asp.net

我的主页名为main.aspx。在这我有2帧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>

我有另一个名为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>

在这个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);
   }
}

当我点击开始a.aspx和b.aspx中的计时器都开始,暂停和恢复也在这里正常工作

问题是,当我点击a.aspx中的Another Demo链接时,它将重定向到demo.aspx,并从demo.aspx重定向到使用demo.aspx中的链接重定向到a.aspx,

现在两个计时器都显示它们正在工作的接缝时间,但是当我尝试点击停止并启动按钮时它们不起作用。

先谢谢。

0 个答案:

没有答案