I'm trying to write a method to catch user clicks on a site menu, but I want the process to be silent for the user, mainly, that when a user hovers over an anchor tag, it would behave normally (showing the link it contains). I've tried in various ways to do this, and I almost have it working now, my code is as follows:
<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>
And in jQuery, I have:
$(".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;
}
});
});
The link redirects to the selected page, but the ajax code never finishes, thus never registers the user's click.
I tried using event.preventDefault, but there is no way to resume the cancelled event.
Part of the problem comes from extra functionality, say, most users right click on the anchor tag to open in a new tab (or use control + click, or middle click), and using something like
<a href="javascript:saveClick(o)">Google</a>
is not allowed on the site (for security reasons).
Any suggestions how this can be done?
See Question&Answers more detail:
os