問題タブ [stoppropagation]
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.
jquery - クリックとオフのクリックでドロップダウンdivを切り替えるより良い方法はありますか?
現在、ドロップダウンdivメニューを次のコードで切り替えています。
divを切り替えるためのより速く/より良い/より効率的な方法はありますか?これは非常に大きなコードの塊のようです。
jquery - false を返すことで、jQuery on() が泡立つのを防ぐべきではありませんか?
jQueryのドキュメントによると
イベント ハンドラから false を返すと、自動的に event.stopPropagation() と event.preventDefault() が呼び出されます。function(){ return false; の省略形として、ハンドラーに false 値を渡すこともできます。}。したがって、 $("a.disabled").on("click", false); クラスが「無効」のすべてのリンクにイベント ハンドラーをアタッチします。これにより、クリックされたときにリンクをたどることができなくなり、イベントのバブリングも停止します。
したがって、クリックイベントを作成すると:
.toggle
からに伝播する機会がないため、クリックが登録されないことが予想されます#sidebar
私が思いついた唯一の説明は、これが許されるとon()
関数がかなり無意味になるということです。おそらく、この場合はバイパスされますか?
on()
バブリングに関しては、どのような規則に従いますか?
jquery - jQueryは、event.stopPropogation、event.preventDefault、およびreturn falseを使用しても、リターンキーでフォーム送信を停止できません
jquery を使用してカスタム オートコンプリート コンポーネントを作成しました。私の問題は、誰かがキーボードの上下矢印キーを使用してオートコンプリート候補の 1 つを選択し、リターンを押すと、呼び出しevent.stopPropogation()
てevent.preventDefault()
false を返してもフォーム送信が行われることです。
コア関数を keyup イベントにバインドしました。
getResults は、json オブジェクトを返すサーバー スクリプトに対して ajax 呼び出しを行います。getResults 疑似コードは次のとおりです。
最後に、ajax 呼び出しの成功ハンドラーは次のとおりです。
そして最後に、 killEvent は単純な関数です:
したがって、すべてのハンドラーとli
、オートコンプリート候補リストの要素のクリックでさえ、すべて false を返し、 and を呼び出しstopPropogation
ますpreventDefault
。ただし、フォームの送信は引き続き行われます。ここで何が間違っているか、欠けていますか。長文すみません!
jquery - からjQueryイベント関数を停止する
昨日質問を投稿しましたが、残念ながら、上記のコードに新しい問題があり、問題を修正する方法を学ぶことができるように、正しい方向に向けてくれる親切な人を探しています。もう一度問題の助けを求めてください。
スクリプトへのjsfiddleリンクは次のとおりですhttp://jsfiddle.net/EzYeH/10/
私が達成しようとしているのは、イベント関数の縮小がまだ実行されている場合に、イベント関数の展開の初期化を停止することです。
.stopPropagation()
&を使用して読み上げてみました.stop()
が、実装を正しく取得できません。
これに取り組むことができる人は誰でも事前に感謝します、
ダン。
javascript - jQuery on()stopPropagationが機能していませんか?
これで伝播を止めることができないようです。
javascript - jQueryクリックイベント停止伝播が機能しませんか?
私は仕事に取り掛かろうとしているギャラリータイプのインターフェースを持っています、それを閉じるためにそれの外側をクリックできるようにしたいのですが、主要な要素、写真、そしてクリックするものを含む内部にdivがあります。ただし、div内をクリックすると閉じます。これは、クリックすると閉じる要素の子であるためです。
私はこのようなdivを持っています:
すべてがajaxを介してシアターコンテナにロードされます。.theater-wrapperをクリックするとイベントが発生して閉じますが、theatre-containerをクリックすると発生しません。
これは私がそれを閉じようとした方法です:
私はこれを実際に示しているjsfiddleを持っています:http://jsfiddle.net/Cs8Kq/1/
jquery - UIアコーディオンヘッダー内のjQueryColorBoxプラグイン
まず、これが私が達成しようとしていることです。画像の親指といくつかの基本的な情報を含むオブジェクトのリストがあります。画像をクリックして画像の大きなバージョンを表示したり、オブジェクト情報の他の場所をクリックして、オブジェクトに関する多くの追加情報を含むDIVを展開したりできます。
私はこれをjqueryUIアコーディオンとyoxviewの組み合わせで動作させましたが、yoxviewはいくつかのブラウザーで非常に苦痛を与えていたため、ColorBoxに置き換えることにしました。
ここに問題があります。これは機能していますが、画像をクリックすると、ColorBoxが正常に開きますが、アコーディオンもトリガーされますが、もちろんそうではありません。たとえば、追加情報をクリックして開き、親指をクリックして画像を拡大すると、アコーディオンが閉じるため、これらのオブジェクトをナビゲートしてチェックするのは簡単ではなく、本当に苦痛になります。
設定は次のとおりです。
ドキュメントの準備ができたら、次のようになります。
およびColorBoxの場合:
(1つのオブジェクトに複数の画像がある可能性があるため、relを使用します。htmlの例を簡略化しました)
画像がクリックされたときに確認するために、私は通常、次の行のコードを使用します。
ただし、stopPropagationを無数の方法で試しましたが、試行するたびにColorBoxが妨害されます。大きな画像は問題なく開きますが、ライトボックスではなくウィンドウ自体に表示されます。
要するに、yoxviewとは異なり、クロスブラウザで動作するライトボックスがあることは知っていますが、画像をクリックするとアコーディオンがトリガーされるという望ましくない副作用があります。
画像(リンク)がアコーディオンヘッダー内にあるにもかかわらず、それをクリックするとColorBoxがトリガーされますが、アコーディオン自体はトリガーされないようにするために、ここで助けていただければ幸いです。
乾杯。
jquery - jQuery:IE8でのstopPropagation
次のコードを使用して、背景色、画像、不透明度のないフルスクリーンのdivをクリックしないようにしています。ただの通常の古いdiv。
そしてCSS
私が試したブラウザ(Chrome 16.0.912.77、Opera 11.61、Safari 5.0.4、Firefox 3.6.25、SeaMonkey 2.1)では、正常に動作します。
IE8(64ビット)では、クリック可能なものでは機能しません。リンクなど。IE8のバックグラウンドのどこかをクリックすると、機能します。リンクをクリックしても、リンクのクリックは続きます。
IE8で背景色を指定すると、機能します。しかし、IEの不透明度は苦痛なので、divは単色になり、私はそれを望んでいません。背景色を指定せずにIE8で動作させる方法はありますか?
ありがとう。
jquery - jQueryの親子要素のクリックイベント
私のHTMLは次のようになります(残念ながら、使用しているCMSでレンダリングされているため変更できません)。
jQuery。
このコードを使用すると、ラベル内のどこかをクリックするとチェックボックスが切り替わります。<div class="pledge">
必要なのは、要素をクリックしたときにのみアクションが実行されるようにすることです。.stopPropagation();だと思います。ここで私を助けますが、私はそれを正しく動作させることができませんでした。
同じ考えを達成しているように見える別のショットがあります:
javascript - 外側の要素のスクロールを無効にする方法は?
ページ内に垂直方向にスクロールするdivがあり、これも垂直方向にスクロールします。
子divがマウスホイールでスクロールされ、スクロールバーの上部または下部に到達すると、ページ(本文)がスクロールを開始します。マウスが子divの上にある間、ページ(本文)のスクロールをロックしたいのですが。
このSO投稿(選択した回答までスクロールダウン)は、問題をよく示しています。
このSOの質問は基本的に私のものと同じですが、選択した回答により、スクロールバーが消えて再び表示されるため、ページのコンテンツが水平方向に著しくシフトします。
event.stopPropagation()を活用するソリューションがあるかもしれないと思いましたが、何も機能しませんでした。ActionScriptでは、この種の問題は、body要素に到達する前にイベントでstopPropagation()を呼び出す子divにマウスホイールハンドラーを配置することで解決されます。JSとASはどちらもECMAScript言語なので、概念は翻訳されるかもしれないと思いましたが、うまくいかなかったようです。
ページのコンテンツが移動しないようにするソリューションはありますか?CSS修正ではなくstopPropagationを使用している可能性が高いですか?純粋なJSと同様に、JQueryの回答は大歓迎です。