問題タブ [dom-events]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Javascript の要素の配列に引数を持つイベント ハンドラを追加する方法は?
JavaScript と Ajax に完全に依存してデータをロードし、あるステップから次のステップへとプロセスをアニメーション化する 3 ステップのプロセスがあります。さらに複雑なことに、ステップ間のトランジション (前後) はアニメーション化されます :-(。ユーザーがプロセス アンカーを介して進行すると、現在のステップと前のステップが表示されます。前のステップをクリックすると、元のステップに戻ります。前のステップ。
現時点では、ステップ 1 から始めればプロセス全体 (順方向と逆方向) が正しく機能しますが、ステップ 3 に直接ジャンプすると、ステップ 1 とステップ 2 のアンカーもステップ 3 と同じアクションを実行します。
これは、ユーザーがいる現在のステップまでのすべてのステップをループし、各アンカーを順番に表示して、適切な関数をクリック イベントに割り当てるコードの一部です。
action および dao_id パラメータが渡される方法に問題があることはわかっています。また、 profile.steps[i].action および profile.steps[i].dao_id を渡そうとしましたが、その場合は profile と i の両方または少なくとも私は範囲外です。
各ステップで action と dao_id のパラメーターを正しく割り当てるにはどうすればよいですか? (違いがある場合は、Prototype と Scriptaculous を使用しています)
javascript - カスタムドラッグアンドドロップスクリプトが失敗するのはなぜですか?
私は現在、独自のJSドラッグアンドドロップスクリプトをコーディングしようとしています(好奇心と退屈さから、フレームワークを使用するとはるかに簡単になると思います)。私の目的は完全に機能するFirefox3バージョンです。IEは今すぐ待つことができます。
奇妙なバグで立ち往生しました。初めてdivをドラッグすると、問題なく動作します。2回目にドラッグすると、ボタンを離しても動かなくなり、もう一度クリックして下に移動する必要があります。3番目以降のドラッグは、再び問題なく機能します(!?!)。
何が起こるかについては、[元のページ] [1](私が言ったように、今のところFireFoxのみ)を参照してください。すべては、中間移動にdocument.captureEvents(Event.MOUSEMOVE)を使用して、2つのイベント(onmousedownとonmouseup)を持つdivとして実行されます。スクリプトは[ここ][2]にあります(下部のajax部分は無視してください。いくつかの追加のトリックのために準備されており、取り出してもバグは残ります)。
過去に似たようなことをしたことがあるか、どこかで間違いを見つけた場合はお知らせください。全体を回避するためのより良い方法があるかもしれないことを私は知っていますが、私は特に私のアプローチを機能させる方法を探しています。
編集:ChromeとSafariは動作します。
編集:リンクをオフラインにして、新しいバージョンで作業します。
javascript - キーボード/マウスのアクティビティをチェックするためのビルド済みの Javascript はありますか?
ユーザーがページに費やした時間を追跡するために、キーボードとマウスのイベントを監視する Javascript が必要です。具体的には、入力するか、マウスで移動/クリックしてページを積極的に使用します。
時間を節約するのに役立つかもしれない何かを誰かが知っているかどうか尋ねたいと思いました。それ以外の場合は、Javascript とアスピリンが来ます... 笑
javascript - RegisterStartupScript() で追加されたスクリプトはいつ実行されますか?
Page.ClientScript.RegisterStartupScript()でページに追加されたスクリプトが実際に実行されるのはいつですか? MSDN は、「ページの読み込みが終了したとき、ページのOnLoad
イベントが発生する前」と述べていますが、これはあまり詳細ではありません。
たとえば、 で追加されたスクリプトRegisterStartupScript
は、DOM ツリーが構築されていると想定できますか? ブラウザの実装が異なると動作が異なりますか? またその方法は?
javascript - JavaScript 競合状態の回避
私のユーザーには、基本的にはスプレッドシートの簡素化されたバージョンが表示されます。グリッドの各行にテキスト ボックスがあります。テキスト ボックスの値を変更すると、入力の検証を実行し、グリッドを駆動するコレクションを更新し、ページの小計を再描画します。これはすべてOnChange
、各テキストボックスのイベントによって処理されます。
ユーザーがボタンをクリックするとSave、ボタンのOnClick
イベントを使用して金額の最終的な検証を行い、入力内容全体を Web サービスに送信して保存します。
少なくとも、フォームをタブでSubmitボタンに移動すると、それが起こります。
問題は、値を入力してすぐに保存ボタンをクリックすると、完了SaveForm()
する前に実行が開始UserInputChanged()
され、競合状態になることです。私のコードでは を使用していませんが、遅い検証コードsetTimeout
をシミュレートするために使用しています。UserInputChanged
検証コードを高速化できるとは思いません。かなり軽量ですが、検証が完了する前にコードが Web サービスを呼び出そうとするほど遅いようです。
私のマシンでは、コードの保存が始まる前に検証コードが実行されるかどうかの間のマジック ナンバーは ~95ms です。これは、ユーザーのコンピューターの速度に応じて、より高くなったり低くなったりする場合があります。
この状態を処理する方法を知っている人はいますか? 同僚は、検証コードの実行中にセマフォを使用し、保存コードでビジー ループを使用してセマフォのロックが解除されるまで待機することを提案しましたが、コードでビジー ループを使用することは避けたいと思います。
javascript - form.submit の応答を取得するにはどうすればよいですか
次のコードがあります。
のhtml応答をキャプチャしたいform1.submit
ですか?どうすればいいですか?form1.submit メソッドに任意のコールバック関数を登録できますか?
javascript - Javascriptを使用して私のWebサイトでユーザーが3回クリックしたことを確認する方法
JavaScriptで、同じドメインを2回以上クリックしたユーザーを見つける方法はありますか?
ユーザーがサイトの任意の場所を 3 回クリックした後、ウィンドウをポップアップする必要があります。ワンクリックでそれを行う方法を知っています -document.referrer
またはaddEventListener
を使用しますが、その後は迷ってしまいます。
リンクだけでなく、すべてのクリックイベントをキャプチャしてカウントするものが必要です。
javascript - Mozilla Firefox で Enter キーを押したときにボタン イベントをトリガーする
このコードは IE7 では機能しますが、Mozilla Firefox では機能しません。Enterキーを押したときにボタンイベントを発生させるのを手伝ってください。
javascript - テーブル行を使用したJavascriptOnclick
JScriptコードに問題があります。onclick
テーブル内のすべての行をループして、イベントを追加しようとしています。onclick
イベントを追加することはできますが、いくつか問題があります。
onclick
最初の問題は、すべての行がイベントに対して間違ったパラメーターで設定されてしまうことです。
2番目の問題は、IEでのみ機能することです。
コードの抜粋は次のとおりです。
テーブルは次の場所にあります...
http://www.blackcanyonsoftware.com/OrderTracker/testAJAX.html
順番に各行のIDは...95、96、94 .. ..
何らかの理由で、shanesObj.tableRowEvent
が呼び出されると、onclick
ループで反復を行った最後の値idを持つすべての行に対してが設定されます(94)。
問題を説明するために、ページにいくつかのアラートを追加しました。