2016-02-25 50 views
0

我的系统中有几个锚链接,它有href="#"。我期望当点击锚点链接时,它会简单地回到页面的顶部,但是当我点击我的锚点链接之一时,它会打开一个新页面。a href =“#”进入新页面

下面是一个简单的锚链接,是在我的网站:

<li><a href='#' onClick='deletePost()'> Delete </a> </li> 

delete链路上profile.php找到。在我点击链接之前,该URL将会显示为http://localhost/profile_page/AliceP,这与预期相同。但是,当我点击链接时,URL将更改为http://localhost/#,并将我引导至新页面。链接除了执行通过onClick事件完成的PHP查询外,不应该执行任何操作。

同样的问题仍然存在于我的表单元素:

<form action='#' method='post'> 
    <input type='submit' class='btn btn-info' name='sendmsg' value='Send Message'/> 
    <input type='submit' class='btn btn-info' name='addfriend' value='Add to Favourites'> 
</form>"; 

我以前从来没有过这样的问题。

+0

和'deletePost()'做什么* *究竟 - ?使用的''#表明您标记为JS,但没有包括在你的问题。 –

+0

并没有PHP来支持标签。您可以在与其相关时添加它。 –

+0

尝试将'a href ='#''更改为'a href'。我在过去有过类似的问题 – kittu

回答

0

试试吧。通过这种方式,您可以将所有<a>元素与href="#..."绑定,以防止点击时进行指示。

在您的表单中,您可以只写<form method="post">而不采取任何措施。

$('a[href^="#"]').on('click', function(e){ 
 
    
 
    // Prevents from directing 
 
    e.preventDefault(); 
 
    
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<a href="#" onclick="deletePost()">Delete me</a> 
 
<a href="http://www.stackoverflow.com">This still redirects</a>

+0

你不知道你解决了多少问题!我甚至不记得创作的元素现在正在出现和工作,谢谢!但是,'

  • Delete
  • '仍然带我到'http:// localhost /#'。如果我删除'href'属性,那么链接就变得不可点击(出现文本光标)。 – Freddy

    +0

    这适用于我:https://jsfiddle.net/0qmmkrh8/。你也可以查看stopPropagation()和stopImmediatePropagation()。 – Timo