Reputation: 1559
On using Google I found that they are using onclick events in anchor tags.
In more option in google header part, it looks like normal a tag, but onclicking it doesn't get redirected but opened a menu. Normally when using
<a href='more.php' onclick='show_more_menu()'>More >>></a>
It usually goes to 'more.php' without firing show_more_menu()
, but I have show a menu in that page itself. How to do like google?
Upvotes: 120
Views: 759489
Reputation: 842
Not sure if this is what you are looking for but you can recreate an anchor tag with a div adding role="link"
, this doesn't have the href
but at the same time it should be fine from a SEO point of view
<div tabindex="0" role="link" aria-label="Example Link" onclick="show_more_menu()">
Click to navigate
</div>
Upvotes: 1
Reputation: 2274
From what I understand you do not want to redirect when the link is clicked.
You can do:
<a href='javascript:;' onclick='show_more_menu();'>More ></a>
Upvotes: 64
Reputation: 335
One more solution that prevents default action even if the javascript
function returns any value.
<a href="www.any-website.com" onclick='functionToRun();return false;'>
Upvotes: 2
Reputation: 1259
1) Link to work
<a href="#" onClick={this.setActiveTab}>
...View Full List
</a>
setActiveTab = (e) => {
e.preventDefault();
console.log(e.target);
}
Upvotes: 0
Reputation: 92687
Use following code to show menu instead go to href addres
function show_more_menu(e) {
if( !confirm(`Go to ${e.target.href} ?`) ) e.preventDefault();
}
<a href='more.php' onclick="show_more_menu(event)"> More >>> </a>
Upvotes: 9
Reputation: 12618
If your onclick function returns false the default browser behaviour is cancelled. As such:
<a href='http://www.google.com' onclick='return check()'>check</a>
<script type='text/javascript'>
function check()
{
return false;
}
</script>
Either way, whether google does it or not isn't of much importance. It's cleaner to bind your onclick functions within javascript - this way you separate your HTML from other code.
Upvotes: 166
Reputation: 1158
You can even try below option:
<a href="javascript:show_more_menu();">More >>></a>
Upvotes: 66