jquery href并单击事件同步

时间:2013-01-11 23:44:40

标签: jquery click location href delay

伙计我有两个动作同步的问题。 在第一个链接:

<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以在binded函数中解析它。我试图通过setIll_val_by_link()这里使用的geturl()函数的setTimenterval来延迟它,但这是一个糟糕的解决方案。 有任何想法吗?需要它真的很快 - 考试时间:(非常感谢任何帮助!

(对不起我的语言)

3 个答案:

答案 0 :(得分:1)

使用延迟0的超时对事件进行排队。

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

答案 1 :(得分:0)

我认为你需要这个:

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

答案 2 :(得分:0)

您可以使用命名函数执行此操作:

$('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(/^[#]/, '');
    ....
});