eze*_*mel 10 javascript events onchange click
我有一个带有onchange事件的输入文本,该事件调用一个显示警告框的函数.我还有一个按钮,其onclick调用不同的功能.如果用户对输入文本进行了更改并立即单击该按钮,则会触发onchange事件,显示警告框,但是按钮的onclick功能中的代码不会执行.我已经读到这与事件冒泡有关,但我还没有看到任何解决方案.有解决方案吗?它甚至可能吗?
这是一个小例子:
<input type = "text" onchange = "showAlert1()">
<input type = "button" id = "al2" value = "Click Here" onclick = "showAlert2()">
<script type = "text/javascript">
function showAlert1()
{
alert("ONE")
}
function showAlert2()
{
alert ("TWO");
}
</script>
Run Code Online (Sandbox Code Playgroud)
如果对输入值进行了更改并且用户立即单击该按钮,则onclick事件处理程序showAlert2()不会触发.我想,你在输入字段中写了一些东西,单击立即按钮然后触发它
警报("ONE")和警报("TWO")......
或者只是
警报("二")
据我所知,这不是冒泡的问题(这是一个问题onchange,但在这种情况下是一个转移注意力的问题)。问题是,更改字段值后单击按钮会触发blur,导致showAlert1()在按钮onclick触发之前运行。
这是一个按照您所描述的方式工作的简单示例,但您会发现它是一种不可靠的黑客行为。onclick基本上它会缓冲每个函数的执行,以便可以触发按钮。然而,如果您单击并按住按钮的时间长于通过在每个函数中设置的缓冲区,它就会崩溃setTimeout()。
function showAlert1() {
setTimeout(function(){ alert("ONE") }, 250);
}
function showAlert2() {
setTimeout(function(){ alert("TWO") }, 250);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4925 次 |
| 最近记录: |