开发者问题收集

PreventDefault() 对我来说不起作用

2012-08-28
207

为什么这个会拒绝工作?
HTML 内容

<div id="nav-bar">  
  <ul>  
    <li>  
      <span>  
        <a href="contact.html">Contact</a>  
      </span>  
    </li>  
  </ul>  
</div>

Javascript 内容

$('div#nav-bar').filter('a').click(function(event){
    event.preventDefault();
});
2个回答

过滤器仅过滤已选择的内容。在您的例子中,是 #nav-bar 元素。

您需要这个:

$('div#nav-bar a').click(function(event){
        event.preventDefault();
    });
Ohad
2012-08-28

filter 在此处使用的方法不正确。您应使用 find 来查找选择中的元素:

$('div#nav-bar').find('a')...

或者简单地将其组合成一个选择器:

$('div#nav-bar a')...

修复该问题后,您的 preventDefault 将真正得到应用并正常工作,该段代码本身没有任何问题。

oezi
2012-08-28