【问题标题】:jquery href and click event syncjquery href 和点击事件同步
【发布时间】:2013-01-12 08:26:45
【问题描述】:

伙计们,我在两个动作之间存在同步问题。 第一个链接:

<a href="#mytag1">Link 1</a>
<a href="#mytag2">Link 2</a>
<a href="#mytag3">Link 3</a>

还有JQuery事件绑定:

$('a').click(function(){recognize_content_by_link()});

这个函数使用其他函数(让它成为geturl())window.location.href,解析它以从中获取'#mytagX'并加载内容。

问题是:我需要先设置href,然后从window.location中获取url在绑定函数中解析。我曾试图通过在recognize_content_by_link() 中使用的geturl() 函数上的setTimenterval 来延迟它,但这是一个糟糕的解决方案。 有任何想法吗?非常需要它 - 考试时间:(非常感谢您的帮助!

(对不起我的语言)

【问题讨论】:

  • 显示其他代码...真的不清楚是什么问题

标签: jquery click location href delay


【解决方案1】:

在事件发生后使用延迟0 将其排队。

$('a').click(function() {
  setTimeout(function() {
    recognize_content_by_link();
  }, 0);
});

【讨论】:

    【解决方案2】:

    我认为你需要这个:

    $('a').click(function(e){
       e.preventDefault();
       recognize_content_by_link();
    });
    

    【讨论】:

      【解决方案3】:

      您可以使用命名函数来做到这一点:

      $('a').click(recognize_content_by_link);
      
      function recognize_content_by_link(event) {
          event.preventDefault();
          var hash = this.hash.replace(/^[#]/, '');
          ....
      }
      

      或匿名函数:

      $('a').click(function(event) {
          event.preventDefault();
          var hash = this.hash.replace(/^[#]/, '');
          ....
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-24
        • 1970-01-01
        • 2012-03-15
        • 2013-07-14
        • 1970-01-01
        • 2010-09-07
        • 1970-01-01
        相关资源
        最近更新 更多