4

この問題を再現する手順:

  1. テキストボックスに何かを入力します
  2. 入力した直後にボタンをクリックします。
  3. onchangeイベントのみがトリガーされたことがわかりました。

コード:

<div>
    <input type="text" onchange="console.log('onchange');$('#message').css('display','none');" >
    <div id="message">
        Validating
    </div>
    <br>
    <input type="button" onclick="console.log('onclick');" value="click me">
</div>

デモ

4

4 に答える 4

5

ボタンの位置を変更するレイアウトを変更していて、ボタンのマウスアップイベントが呼び出されていないためです。デモを見る:

JSビン

div を非表示にする場合は、占めるスペースを保持して、次を使用します。

$('#message').css('visibility','hidden');

可視性を隠した新しいデモ

于 2012-12-17T06:46:11.907 に答える
2

ボタンの位置変更によるイベントの発生と呼び出しonclickが必要なためmouse-downmouse-uponclick

これが完全なイベントのデモです。

于 2012-12-17T07:01:44.500 に答える
0

クリック イベントは、mousedown と mouseup の 2 つのイベントの組み合わせです。代わりにマウスダウンを使用できます。

<div>
    <input type="text" onchange="console.log('onchange');$('#message').css('display','none');" >
    <div id="message">
        Validating
    </div>
    <br>
    <input type="button" onmousedown="console.log('onclick');" value="click me">
</div>
于 2012-12-17T06:58:09.583 に答える
0

キーダウン/プレス/アップを探しています...

onkeydown イベントは、ユーザーが (キーボードの) キーを押したときに発生します...

<div>
    <input type="text" onkeydown="console.log('onchange');$('#message').css('display','none');" >
    <div id="message">
        Validating
    </div>
    <br>
    <input type="button" onclick="console.log('onclick');" value="click me">
</div>​

ここにフィドルがあります

http://jsfiddle.net/zQLFt/1/

于 2012-12-17T06:54:51.590 に答える