Я хочу, чтобы текст ярлыка запускался, когда я нажимаю кнопку, но он не работает. Если я использую 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();">
Вам нужно вернуть false
из вашего javascript, чтобы остановить публикацию по умолчанию. Или вы также можете использовать обычную кнопку 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
}