2

こんにちは、sharepoint アプリに含まれる Web パーツを開発しています。場合によってはリダイレクトを停止する必要があります。しかし、それは機能しません、私は使用しようとしています

$('a').click(function(event){
                event.preventDefault();
                event.stopImmediatePropagation();
                return false;
            });

実行され、とにかくリダイレ​​クトが行われます。どうすれば壊れますか?

その目的は次のとおりです。ユーザーがページで sth を変更したときに、続行するかどうかを尋ね、クリックした可能性のある他のリンクからのリダイレクトを停止する必要があります。

編集:チェックしたところ、内部にリンクがある通常の a で動作しますが、問題は次のようなリンクにあります:

<a title="Delivery And Technology" class="ms-cui-ctl-large" id="someId" role="button" onclick="return false;" href="javascript:;" unselectable="on" mscui:controltype="" jQuery182001210093900916337="93">

このhtmlの中にあります

<SPAN class=ms-cui-ctl-largeIconContainer unselectable="on"><SPAN class=" ms-cui-img-32by32 ms-cui-img-cont-float ms-cui-imageDisabled" unselectable="on"><IMG style="TOP: -96px; LEFT: -160px" alt="Delivery And Technology" src="/_layouts/1033/images/ps32x32.png" unselectable="on"></SPAN></SPAN><SPAN class=ms-cui-ctl-largelabel unselectable="on">Delivery And<BR>Technology</SPAN>

このJavaスクリプトをクリックすると、それが認識されてリダイレクトされるように見えるので、達成したいのは、それを検出して他のページにリダイレクトする前に停止することです。

4

3 に答える 3

10

これにより、動的に追加されたアンカーもナビゲートできなくなります。

$(document).on('click', 'a', function(e){
     e.preventDefault();
     e.stopImmediatePropagation();
     return false;
});

steveukx は省略形を提案しました:

$(document).on('click', 'a', false);
于 2013-04-04T12:28:35.007 に答える
0

コードの実行前に要素にハンドラーがアタッチされている場合、確実にハンドラーを削除したり実行を阻止したりすることはできません。

jQuery利用可能であり、要素が DOM に追加され、そのハンドラーがアタッチされた後にこの関数を実行していると仮定すると、それを同一の要素に置き換えることができます。

jQuery('a').replaceWith(function(index, innerHTML) {
  return jQuery(this.cloneNode(false)).html(innerHTML);
});
于 2013-04-04T15:50:42.490 に答える