href=“#” Going to Top of Page - Prevent? [duplicat

2020-05-16 13:48发布

I have a page with some jQuery functions. The HTML on the page looks like so:

<a href="#" class="service">Open</a>

When I click the Open button a hidden panel slides out. The jQuery itself works great however when I click the button it also takes me to the top of the page.

Is this the defualt behavior and how do I prevent every href="#" from taking me to the top of the page.

Note: I could add id's and tell the href to direct to that ID. I do not want to do that for various reasons (including adding unnecessary code).

4条回答
Animai°情兽
2楼-- · 2020-05-16 13:51
<a href="#!" class="service">Open</a>
查看更多
Luminary・发光体
3楼-- · 2020-05-16 14:04

In your event handler, add e.preventDefault(); (assuming e is the name of the variable holding the event):

$('.service').click(function(e) {
    e.preventDefault();
});
查看更多
Root(大扎)
4楼-- · 2020-05-16 14:08
<a href="#" onclick="return false;" class="service">Open</a>

OR

$(document).ready(function()
{ 
   var a = $(".service");
   a.click(function()
   {

       return false;

   });
});

OR

$(document).ready(function()
{ 
   var a = $(".service");
   a.click(function(e)
   {

       e.preventDefault();

   });
});

OR

<a href="#" onclick="event.preventDefault();" class="service">Open</a>
查看更多
神经病院院长
5楼-- · 2020-05-16 14:10
$('service').click(function() {
<your code>
return false;
});

return false overrides the standard behavior of the ‘a’ tag and stops the browser returning to the top of the page when clicked.

查看更多
登录 后发表回答