サイトメニューでのユーザークリックをキャッチするメソッドを作成しようとしていますが、主に、ユーザーがアンカータグにカーソルを合わせると、正常に動作する(リンクを表示する)プロセスをユーザーに対してサイレントにする必要があります。含む)。私はこれを行うためにさまざまな方法で試しましたが、今ではほとんど機能しています。私のコードは次のとおりです。
<div class="selectNode" id="selectNode_1" style="color: rgb(229, 229, 229); background-color: rgb(47, 47, 47); ">
<a href="http://www.google.com" class="selectAnchor" style="color: rgb(229, 229, 229); ">
Google
</a>
<img class="childImage" src="icon.png">
</div>
そしてjQueryには、次のものがあります。
$(".selectAnchor, .menuAnchor").click(function(event){
event.stopPropagation();
console.log(event.target.nodeName);
//event.preventDefault();
$.ajax({
type: 'POST',
url: 'http://localsite/menuRedirect.php',
data: {id:0, module:'Module',source:'Source'},
complete: function(data){
console.log("DONE");
return true;
}
});
});
リンクは選択したページにリダイレクトされますが、ajaxコードが終了することはないため、ユーザーのクリックが登録されることはありません。
event.preventDefaultを使用しようとしましたが、キャンセルされたイベントを再開する方法がありません。
問題の一部は追加機能に起因します。たとえば、ほとんどのユーザーはアンカータグを右クリックして新しいタブで開き(またはコントロール+クリック、またはミドルクリックを使用)、次のようなものを使用します。
<a href="javascript:saveClick(o)">Google</a>
サイトへのアクセスは許可されていません(セキュリティ上の理由から)。
これをどのように行うことができるかについての提案はありますか?