問題タブ [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 のイベント内のローカル変数の問題
サイズ変更可能でドラッグ可能な div を持つページを開発しており、この div にmousedown
,mousemove
およびmouseup
イベント ハンドラーを添付しています。
問題はmousemove
イベント ハンドラにあります。div の現在の幅、高さ、上、左を取得する必要があります。そのために、関数を使用して特定の値を返し、これらの値をメイン関数内のさまざまな条件で使用する必要があります。
これらの値をローカル変数に割り当て、これらの変数を前のコードで使用しようとすると、スクリプトが遅くなります。サイズ変更とドラッグに遅延があることを意味します。
しかし、条件でこれらの変数を使用する代わりに、毎回関数を呼び出すと、遅延はありません。
この問題の原因は何ですか?
コードサンプル
javascript - Javascript open.window は、呼び出された関数で null を返します
呼び出されたときにウィンドウを開く関数を開発しましたが、返されますnull
。元の JavaScript 関数でウィンドウを開くと動作します。元の関数が制御を他の関数に渡すと思いますが、何らかの理由でこれが機能しません。
これが私の元の関数です。これは基本的に新しいJavaScriptファイルを呼び出してHTMLファイルをロードし、「準備ができたら」現在文字列の形式になっているHTMLファイルでwindow.openを表示する必要があります。
そして、元の関数から呼び出される私の関数は次のとおりです。
javascript - Lazyweb:IE7がテキスト付きのli要素でonMouseOver Javascriptを実行する方法について何か面白いことがありますか?
私はUbuntuユーザーなので、InternetExplorerの知識がありません。liやulなどを使用したJavascriptベースのドロップダウンメニューがあります。FirefoxとIE6で正常に動作します。ただし、IE7にはありません。onMouseOver
テキストとli要素の端の間の空白の領域(IE6が行うこと)とは対照的に、IE7は中央のテキストに目を通さない限り関数を呼び出さないように見えます。これに関するヒントはありますか?
2009年5月21日更新-ここで何が起こっているのかわかりませんが、別の方法で問題を解決しました。
javascript - JavaScript と JSP
まず、私は調査を行い、JavaScript = クライアント JSP = サーバー側であることを既に知っています。私はあなたの時間を無駄にしたくありません。
私の状況は、(HTML フォームからではなく) イベントから JSP コードを実行したいということです。
タグ<a href="...">XXX</a>
内にはないHTML リンク ( ) があります。<form>
通常の HTML リンクです。Javascript を使用して、href 値を取得し、非表示の入力フィールドに格納することができます。request.getAttribute("...")
この直後、JSPページ間でパラメータを実行して受け渡ししたい。
私は今、後半の部分を行う方法を知っています (つまりrequest.getAttribute
、Javascript コードが実行された後、すぐにコードを続行するようにします。
誰でもアドバイスできますか?
javascript - DOM でカスタム イベント モデルを文書化または図化する適切な方法
Web アプリケーションに多数のコンポーネントとサブコンポーネントがあるとします。追加したすべてのカスタム イベントの動作を追跡する必要があります。これらの行動を図示または文書化するための確立された方法はありますか?
ドキュメントに表示する必要がある事項は次のとおりです。
- さまざまなコンポーネントの関連する DOM 要素の実際のネスト。
- イベントの名前とその発生元。
- カスタム イベントに添付されたペイロード (たとえば、
memo
Prototype カスタム イベントのコンテンツ)。 - イベントが観察される場所。
- 他のイベントに応答してどのイベントが発生したかを示します。
- イベントのバブリングが許可される場所と停止される場所。
javascript - JavaScript フレームワークのカスタム イベント ロギング
お気に入りの Javascript ライブラリでコード化された優れたコンポーネントを含む Web アプリケーションがあるとします。カスタム イベントを多用して、これらのコンポーネント間の依存関係を減らし、コンポーネントを複数のコンテキストに簡単に配置したり、ページ上で繰り返したり、必要に応じてネストしたりできるようにします。
これは素敵な写真ですが、カスタム イベントのログを記録する方法が見つからないため、デバッグは非常に面倒です。理想的には、選択したフレームワーク (私は現在 Prototype を使用しています) でログを有効にして、DOM の任意のポイントで起動および監視されたイベントの実行中のログを取得できるようにしたいと考えています。
私はこれについて他の F2E と議論しており、いくつかのアプローチが試みられています。
- Visual Eventは、イベントがバインドされている場所を視覚化するのに適したブックマークレットですが、ランタイム ログは提供しません。
- アンテナはまさにそのようなログですが、少しバグがあり、ハックのように感じられるプロトタイプ ライブラリ自体の変更が必要です。
必要なカスタム ログを取得するにはどうすればよいですか?
javascript - Web ページ上の単語をクリックまたはダブルクリックして、イベント ハンドラーをトリガーする方法は?
のようなページの場合
ユーザーがページ内の任意の単語をダブルクリックすると、ポップアップ ボックスが表示され、その単語の定義が表示されます。
DOM スクリプトを使用してページ内のすべての単語を分割し、それぞれを個別の「スパン」要素の下に配置する方法を考えることができます...しかし、そうでなければ、すべてのテキストが「p」要素の場合、「p」要素ノードがトリガーされてダブルクリック イベントが処理されますが、どの単語がクリックされたかを簡単に知る方法はありませんか?
javascript - dblclickイベントが発生したときにクリックイベントが発生しないようにする
DOM要素でclickイベントとdblclickイベントの両方を処理しています。それぞれが異なるコマンドを実行しますが、要素をダブルクリックすると、ダブルクリックイベントが発生するだけでなく、クリックイベントも2回発生することがわかりました。この動作を防ぐための最良のアプローチは何ですか?
javascript - onClickイベントでJavascriptフォーカスを変更しますか?
注:考えられる解決策はFirefox 3.0でのみ機能する必要があり、私のアプリはIEからのアクセスを許可していません!=)
クリックすると、ユーザーにライトボックスを表示するリンクがあります。
私の問題は、ライトボックスが表示されているときに、リンクにフォーカスが残っていることです。したがって、ユーザーが上キーまたは下キーを押すと、表示されているライトボックスではなく、メインドキュメントがスクロールされてしまいます。
このようなコードを使用して、ライトボックス要素にフォーカスを設定しようとしました
これは、firebugコンソールに入力すると正常に機能しますが、onclickスニペットの最後に含めると機能しません。onclickイベント内で実行されたコードからリンクからフォーカスを変更できないように見えますか?
-アップデート1私は以前にこのようなことを試しました
次のように、デバッグ出力を追加するように関数を変更しました
出力は次のとおりです
それで、私が何かをする前の焦点はリンクにありました、そして私が焦点を変えようとした後、それはまだリンクに残っていましたか?
重要かどうかはわかりませんが、次のようにajaxを使用してライトボックスをロードします
ajaxが完了した後、フォーカスを設定しようとしましたが、運がありませんでした。
私は何が欠けていますか?
フォーカスを設定し、document.activeElementをチェックして成功したかどうかを確認することで、以下に提案するソリューションを機能させようとしています。成功しなかった場合は、100ミリ秒待ってから再試行してください。次の機能を使えば動作します
ただし、firebug debug statment console.logを削除すると、関数が機能しなくなります。なぜそうなるのか分かりませんか?変数をfirebugコンソールに出力すると、天気のフォーカスが要素に移動するかどうかに影響するのはなぜですか?console.logステートメントはフォーカスに影響しますか?おそらく、コンソールのデバッグウィンドウにフォーカスを移すことによってですか?