JavaScript setInterval 不适用于 asp net

JavaScript setInterval does not work with asp net

我希望标签文本 运行 在我单击按钮时具有动画效果,但它不起作用。如果我在函数外使用 window.setInterval(afun, 150) ,标签文本将 运行 自动事件我没有点击按钮。我的错误在哪里?抱歉我的英语不好。

<form id="form1" runat="server">
    <div runat="server">

        <p id="demo" runat="server">
            <asp:Label runat="server" ID="label1">Animate Text</asp:Label>
            <asp:Button OnClientClick=" return afun();" Text="button" runat="server" />
        </p> 
    </div>
</form>

<script>

    function afun() {
        var element = document.getElementById('<%=label1.ClientID%>');
        var eText = element.innerHTML;
        var lengText = eText.length;
        window.setInterval(function () {
            eText = eText[lengText - 1] + eText.substring(0, lengText - 1);
            element.innerHTML = eText;
        },150);
    }
    //window.setInterval(afun, 150);
</script>

您的按钮将生成为表单内的 Submit 按钮,如下所示。

<input type="submit" name="ctl03" value="button" onclick=" return afun();">

您需要从 javascript return false 停止默认 posting。或者,如果您不希望按钮 post.

,也可以在代码中使用纯 HTML 按钮

如下更改您的 JavaScript 函数。

  function afun() {
        var element = document.getElementById('<%=label1.ClientID%>');
        var eText = element.innerHTML;
        var lengText = eText.length;
        window.setInterval(function () {
            eText = eText[lengText - 1] + eText.substring(0, lengText - 1);
            element.innerHTML = eText;
        }, 150);
        return false; //ADDED THIS LINE TO STOP FORM POSTING
    }