2017-09-12 13 views
1

私はこのコードを持っています。無効にHREFと実行機能

私はonclick="return false; testFunction();"で試しましたが、明らかに動作しません。

誰かが私を助けることができますか?事前に

おかげ

+2

それは_that_ために動作しません...何も_after_ return文が実行されます。 – CBroe

+1

https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener – Teemu

+0

testfunction()内で 'event.preventDefault();'を使用して、ハイパーリンクのデフォルトアクションが発生しないようにします。 – Niladri

答えて

2
  1. あなたは、ブラウザのデフォルトhrefを実行しないであろうことを確認するpreventDefaultを使用する必要があります。
  2. あなたはreturn場合 - その後に実行されます何も...

function testFunction() { 
 
    alert('hi'); 
 
} 
 
document.querySelector('.function').addEventListener('click', function() { 
 
    event.preventDefault(); 
 
    testFunction(); 
 
});
<a href="https://www.yahoo.com"> 
 
    <div>...</div> 
 
    <div class="function">Click here will not change page</div> 
 
    <div>....</div> 
 
</a>

0

もう一つの方法、それはjavascript:void(0)であることを確認し、jQueryの

$(".function").click(function(){ 
 
console.log("test") 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a href="javascript:void(0)"> 
 
    <div>...</div> 
 
    <div class="function">Click here will not change page</div> 
 
    <div>....</div> 
 
</a>
経由でイベントをクリックします

0
$('#selector').on('click', function(e) { 
    e.preventDefault(); 
    alert("Cool!"); 
}); 
+1

コード。 – bfontaine

0

あなたはこれを行うことができます。

クリックイベントハンドラから falseを返す
$('#content a').click(function(){ return false }); 

は(リンク以下)のデフォルトの動作を防止します。

あなたが複数のリンクを持っているかもしれませんが、あなたはこれだけを無効にしたい場合は、あなたがあなたのセレクタに特異的であり得る:もちろん

$('#content a[href="/test/"]').click(function(){ return false }); 
関連する問題