猿问

<a>标记上的preventDefault()

当单击链接时,我有一些html / jquery可以上下滑动div以显示/隐藏它:


<ul class="product-info">

  <li>

    <a href="#">YOU CLICK THIS TO SHOW/HIDE</a>

    <div class="toggle">

      <p>CONTENT TO SHOW/HIDE</p>

    </div>

  </li>

</ul>

$('div.toggle').hide();

$('ul.product-info li a').click(function(event){

  $(this).next('div').slideToggle(200);

}

我的问题是:如何使用preventDefault()链接来停止链接并将其添加#到URL的末尾并跳至页面顶部?


我找不到正确的语法,只是不断收到一个错误消息,指出preventDefault()不是函数。


跃然一笑
浏览 646回答 4
4回答

森林海

尝试类似:$('div.toggle').hide();$('ul.product-info li a').click(function(event) {&nbsp; &nbsp; event.preventDefault();&nbsp; &nbsp; $(this).next('div').slideToggle(200);});这是jQuery文档中有关该页面的页面

DIEA

将href属性设置为href="javascript:;"<ul class="product-info">&nbsp; <li>&nbsp; &nbsp;<a href="javascript:;">YOU CLICK THIS TO SHOW/HIDE</a>&nbsp; <div class="toggle">&nbsp; &nbsp; <p>CONTENT TO SHOW/HIDE</p>&nbsp; </div>&nbsp;</li></ul>

翻过高山走不出你

建议您不要使用return false,因为这样会导致3种情况:event.preventDefault();event.stopPropagation();停止回调执行,并在调用后立即返回。因此,在这种情况下,您实际上应该只使用 event.preventDefault();文章存档-jQuery Events:Stop(Mis)使用Return False

jeck猫

<ul class="product-info">&nbsp; <li>&nbsp; &nbsp; <a href="javascript:void(0);">YOU CLICK THIS TO SHOW/HIDE</a>&nbsp; &nbsp; &nbsp; <div class="toggle">&nbsp; &nbsp; &nbsp; &nbsp; <p>CONTENT TO SHOW/HIDE</p>&nbsp; &nbsp; &nbsp; </div>&nbsp; </li></ul>采用javascript:void(0);
随时随地看视频慕课网APP
我要回答