0

私は現在、タッチ スクリーン コンピューター用の Web ページをセットアップしようとしていますが、(私の太い指では) onclick イベントをトリガーするのが非常に難しいことに気付きました。私は「クリック」します。

私が使用したい解決策は、onmousedown イベントを onclick に転送することです。どうすればこれを機能させることができますか?

最良の答えは、次のようなものです。

<input type="radio" onmousedown="this.onclick()"/>

(もちろん稼働中ですが)

編集: 私の特定の例は、ラジオ ボタンの場合です。1 つがチェックされている場合、他のボタンはチェックされていません。ブラウザーが無料で提供してくれるカスタム イベントで、この動作を複製する必要はありません。

注:編集してフィードバックを受け取ったので、おそらく間違った方向に進んでいる可能性があると思います...おそらく、実際に選択を行うのはラジオボタンの「クリック」機能ではありません:新しい提案を歓迎します...

4

5 に答える 5

1

わかりました、編集後はより明確になります。やりたいことは、mousedownイベントが発生したときにユーザーがコントロールをクリックすることをシミュレートすることです。

2 つのオプション:

  1. DOM イベントを発生させることができます - DOM イベントに関するこのチュートリアルでは、これについて説明しています (「イベントを手動で発生させる」セクションを参照してください)。Javascript イベントの発生は、同様の根拠をカバーしています。
  2. Set onmouseout="this.checked = true;"、つまり、ラジオ ボタンをクリックすると、ラジオ ボタンが「チェック」/選択されます。
于 2009-09-17T09:16:55.823 に答える
1

質問で言及していないことは知っていますが、たまたまjQueryを使用している場合は、本当に簡単です。

$().live('mousedown', function() { this.click(); });
于 2009-09-16T13:46:09.907 に答える
1

mousedownイベントを処理しないのはなぜですか?

于 2009-09-16T13:36:26.437 に答える
-1

多分これはあなたのために働く

document.getElementById("yourinput").onmousedown = function() {
   this.click();
}

さらに、ポインターを介したアクセシビリティを向上させるために、入力ボタン/フィールドを少し大きくするようにスタイルを設定できます。

于 2009-09-16T13:39:42.867 に答える
-1

両方のイベントを処理する単一の関数を用意することをお勧めします。

var function = foo(e) {
   ...
};

<input onclick="foo();" onmousedown="foo();"/>

目立たない JavaScript を使用することをお勧めします (YUI を使用している場合)。

<input id="input-el"/>

var function = foo(e) {
   ...
};

var Event = YAHOO.util.Event;

Event.on('input-el', 'click', foo);
Event.on('input-el', 'mousedown', foo);
于 2009-09-17T00:55:04.143 に答える