javascript 使い方 - jqueryのe.stopPropagation()はアンカータグに対して機能しますか




解除 イベント (5)

私はe.stopPropagation()を使用しようとしているアンカータグ内の要素からeventpropogationを防ぐことを望みます。 それはうまくいかないようですそれはそれが可能であるか、またはちょうど時間を無駄にしているイムここから私を助けてくださいJavaScriptは:

$(document).ready(function(){
    $('.alink .p').click(function(e){
    alert("hi");
    e.stopPropagation();  
});

HTMLは次のとおりです。

<div>
    <a href="http://google.com" class="alink" >Google links
          <p class="p">Another Links to prevent default</p>
    </a>
</div>

あなたの貴重な時間をありがとう


Answers

これを試して

$(document).ready(function(){
    $('.alink .p').click(function(e){
        e.preventDefault();
        e.stopImmediatePropagation();
        alert("hi");
        return false;
    });
});

event.stopPropagation()は、元々イベントがトリガされていた要素からDOM構造内のさらに離れたハンドラへのイベントの受け渡しを停止します。 しかし、それはすでに引き起こされた行動を妨げるものではありません。

上記のデフォルトアクションを停止するには、 event.preventDefault()使用してevent.preventDefault()

出典:


説明

デフォルトの動作(リンククリックなど)は停止しません。このメソッドに加えてevent.preventDefault()使用を検討してevent.preventDefault()

event.stopPropagation()はイベントハンドラ専用です。デフォルトの動作ではありません。

event.preventDefault()このメソッドが呼び出された場合、イベントのデフォルトのアクションは起動されません。

スクリプトに綴りの誤りがあり、そのdocument"document"はありません。

サンプルとこのjsFiddleデモをチェックしてください

サンプル

$(document).ready(function(){
    $('.alink, .alink > .p').click(function(e){
        e.preventDefault();
        e.stopPropagation();
        alert("hi");
    });
});

詳しくは


デフォルトの振る舞いを止めるにはe.preventDefault()を使うべきです。 stopPropagationは、イベントの発生を止めるために使用されます。


jQuery:DOM要素に対するQUERYing the DOMについて多くのことを考えています。

AngularJS:モデルは真実であり、あなたは常にその角度から考える。

たとえば、DOMの一部の形式で表示する予定のサーバーからデータを取得するときは、jQueryで '1'が必要です。DOM内でこのデータを配置する場所「FIND」を指定します。新しいノードを作成するか、innerHTML設定するだけで、そこに「UPDATE / APPEND」することができます。次に、このビューを更新する場合は、 '3。場所を見つけて '4。更新'。この検索と更新のサイクルはすべて、AngularJSではサーバーからのデータの取得と書式設定の同じコンテキスト内で行われています。

AngularJSを使用すると、既に使用していたモデル(JavaScriptオブジェクト)が表示され、モデルの値によってモデル(明らかに)とビューについての情報が表示され、モデルの操作が自動的にビューに伝播するため、それについて考える必要はありません。あなたはAngularJSの中に、もはやDOM内のものを見つけることはできません。

別の言い方をすれば、jQueryでは、CSSセレクタ、つまりHTMLや色や値を取得できるようにクラスや属性などがどこにあるのdivかを考える必要がありますtdが、AngularJSでは、あなたはこのように考えているでしょう:私はどのモデルを扱っていますか、私はモデルの価値を真に設定します。この値を反映したビューがチェックボックスかtd要素内にあるかどうかは気にしません(jQueryでよく考えなければならない詳細)。

AngularJSのDOM操作では、ディレクティブとフィルタを追加することができます。これは、有効なHTML拡張機能と考えることができます。

AngularJSで経験するもう1つの事柄:jQueryでは、AngularJSでたくさんのjQuery関数を呼び出すと、AngularJSが関数を呼び出すので、AngularJSは「やる方法を教えてくれますが、その利点は価値があります。 AngularJSが望んでいること、AngularJSがあなたの機能を提示する方法を学ぶことを意味し、それに応じてそれを呼び出すことになります。これは、AngularJSをライブラリではなくフレームワークにするためのものの1つです。





javascript jquery