【问题标题】:preventDefault() won't work for mepreventDefault() 对我不起作用
【发布时间】:2012-08-28 15:05:25
【问题描述】:

为什么这会拒绝工作?
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();
});

【问题讨论】:

  • 什么不起作用?您期待什么与正在发生什么?
  • 而不是filter 使用find('div#nav-bar a')

标签: javascript jquery preventdefault


【解决方案1】:

过滤器仅过滤已选择的内容。在您的情况下,#nav-bar 元素。

你需要这个:

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

【讨论】:

    【解决方案2】:

    filter 是这里使用的错误方法。您应该使用find 在选择中查找元素:

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

    或简单地将其组合到一个选择器中:

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

    在你修复它之后,你的preventDefault 将真正被应用并工作,那段代码直接没有问题。

    【讨论】:

    • $('div#nav-bar').find('a') 实际上比$('div#nav-bar a') 快,我相信$('#nav-bar').find('a') 甚至更快。
    猜你喜欢
    • 2013-12-22
    • 2021-04-07
    • 2015-10-08
    • 2013-01-18
    • 2021-02-14
    • 2012-05-01
    • 2012-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多