【问题标题】:Start Timer from Javascript从 Javascript 启动计时器
【发布时间】:2012-07-19 06:27:44
【问题描述】:

定时器是这样定义的:

<asp:Timer ID="Timer1" OnTick="Timer1_Tick" runat="server" Interval="1000" Enabled="false" />

调用$find("&lt;%= Timer1.ClientID %&gt;")._startTimer(); 时出现此错误:

Microsoft JScript 运行时错误:无法获取属性“_startTimer”的值:对象为空或未定义

当调用$('#Timer1')._startTimer(); 时,我收到了这个错误:

Microsoft JScript 运行时错误:对象不支持属性或方法“_startTimer”

欢迎任何建议。

【问题讨论】:

    标签: javascript asp.net timer


    【解决方案1】:

    尝试传递$find() 较短的服务器端(或“组件”)ID:

    $find("Timer1")._startTimer();
    

    您还可以将$get()ClientID 一起使用:

    $get("<%= Timer1.ClientID %>")._startTimer();
    

    使用 jQuery,将 ClientID 传递给 $get() 并使用 .get(0) 从 jQuery 集合中检索 DOM 对象:

    $('#<%= Timer1.ClientID %>').get(0)._startTimer();
    

    【讨论】:

    • 非常感谢,现在很好用。首选哪种方法?顺便问一下,有没有办法只调用Tick 事件而不启动计时器?
    • @toy4fun 每种方法都是可行的选择。只需使用对您来说最好的一种。至于引发Tick事件,控件是defined with a _raiseTick method_startTimersetTimeout调用。
    • 如果我理解正确的话,我可以在不启用计时器的情况下拨打_raiseTick吗?
    • @toy4fun 为此,您需要在_raiseTick 之后调用_stopTimer,因为_raiseTick 调用_startTimer 本身来设置下一个Tick
    • 所以现在我的代码看起来像这样:$find("Timer1")._raiseTick(); $find("Timer1")._stopTimer();。再次感谢。
    猜你喜欢
    • 2021-07-14
    • 1970-01-01
    • 2015-12-07
    • 2018-09-26
    • 1970-01-01
    • 2012-09-22
    • 1970-01-01
    • 1970-01-01
    • 2018-11-30
    相关资源
    最近更新 更多