Javascript onchange在之前触发时未触发onclick事件
我这里有个有趣的问题 我有一个文本区域,链接了一个onchange事件。 然后我有一个链接到onclick事件的按钮 在textarea上触发onchange事件时,将处理放入textarea的文本。这通常发生在我单击文本区域之外的内容时 我所做的是:Javascript onchange在之前触发时未触发onclick事件,javascript,onclick,onchange,Javascript,Onclick,Onchange,我这里有个有趣的问题 我有一个文本区域,链接了一个onchange事件。 然后我有一个链接到onclick事件的按钮 在textarea上触发onchange事件时,将处理放入textarea的文本。这通常发生在我单击文本区域之外的内容时 我所做的是: 我在文本区输入了一条文本 键入后,我立即单击按钮以触发按钮上的onclick事件 没有发生任何事情,但是当我单击按钮时,文本区域上的onchange事件被触发,但是按钮本身上的onclick事件没有被触发 为什么??我希望能同时触发onchang
<textarea onchange="processText();" name="mytext"></textarea>
<button onclick="processButton();">Hello</button>
<script language="Javascript">
function processText()
{
alert( 'textarea');
}
function processButton()
{
alert( 'button');
}
</script>
你好
函数processText()
{
警报('textarea');
}
函数processButton()
{
警报(‘按钮’);
}
在文本区域处理模糊事件,并在按钮上单击事件您需要重新检查您的假设。在您的示例中,alert()中断程序流,中断onclick的处理。此代码()演示了onchange在默认情况下不会干扰onclick:
<textarea onchange="processText();" name="mytext"></textarea>
<button onclick="processButton();">Hello</button>
<div id="clicked"></div>
<div id="changed"></div>
<script language="Javascript">
function processText()
{
document.getElementById('changed').innerHTML = "onchange fired";;
}
function processButton()
{
document.getElementById('clicked').innerHTML = "onclick fired";
}
</script>
你好
函数processText()
{
document.getElementById('changed').innerHTML=“onchange-fired”;;
}
函数processButton()
{
document.getElementById('clicked').innerHTML=“onclick-fired”;
}
我有一个类似的问题,但onclick事件未被处理的实际原因是,被单击的元素由于onchange处理程序而向下滚动。释放鼠标按钮时,元素没有收到mouseup事件,“单击”被中断。尝试将事件侦听器添加到组件
document.getElementsByTagName("textarea")[0].addEventListener("change", function(){
alert( 'textarea');
});
document.getElementsByTagName("button")[0].addEventListener("click", function(){
alert( 'button');
});
如果定义了id,那么使用getElementById()您需要显示一些显示问题的代码。你怎么能期望任何人不看代码就知道问题出在哪里?嗯,看起来这是一个更大的问题。这有什么帮助?现在,当我点击按钮时,onchange和onblur被触发。当我点击其他地方时,仍然会触发onchange和onblur。我想捕捉onclick事件。我的行为与onchange事件相同,导致滚动将单击的按钮从鼠标下移出-谢谢Dag。我能想到的唯一解决办法是在mouseup事件之后延迟滚动到。