【问题标题】:replacing links after running javascript:void(0) on first click在第一次点击运行 javascript:void(0) 后替换链接
【发布时间】:2013-01-01 17:56:25
【问题描述】:

以下代码通常包含在 if 语句中,以检查浏览器是否在移动设备上,如果是,则当您单击主菜单链接时,它会停止 href,隐藏当前导航栏链接,然后添加新的一个。这允许下拉菜单保持下拉,您可以再次单击主菜单链接,以便 href 工作。问题是你只能这样做一次。第一次单击并运行 javascript:void(0) 并更新链接后,我无法阻止 href 转到其原始位置。我需要 javascript:void(0) 在每次第一次单击链接时运行,并在第二次单击链接时将您重定向到相应的页面。

$(document).ready(function(){
  $('.mobile-device > a').click(function(){
    $(this).attr('href', 'javascript:void(0)');
  });
});

$(document).ready(function(){
  $('.mobile-device > a').click(function(){
    $('.testing-a').css('display','block');
      $('.testing-this').css('display','none')
  }); 
});

【问题讨论】:

    标签: javascript jquery drop-down-menu href void


    【解决方案1】:

    在这种情况下使用preventDefault()

    示例 ::

    $('.mobile-device > a').click(function(evt){
       evt.preventDefault();
       $(this).attr('href', 'javascript:void(0)');
    });
    

    【讨论】:

    • 有效,但我无法让它在第一次点击后返回默认值。任何想法如何使这项工作?谢谢!!!!
    • 找到了解决办法!!这会向元素添加和删除一个类,并禁用原始的阻止默认值。 $('.mobile-device a').click(function (e){ if($(this).hasClass('prevented')){ e.preventDefault(); $(this).removeClass('prevented') ; }else{ $(this).addClass('prevented'); } });
    猜你喜欢
    • 1970-01-01
    • 2013-04-20
    • 2013-04-24
    • 1970-01-01
    • 1970-01-01
    • 2017-09-03
    • 1970-01-01
    • 2019-09-01
    • 1970-01-01
    相关资源
    最近更新 更多