0

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

<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 来延迟它,但这是一个糟糕的解决方案。有任何想法吗?非常需要它 - 考试时间:(非常感谢您的帮助!

(对不起我的语言)

4

3 回答 3

1

在事件发生后使用带延迟的超时将其排队0

$('a').click(function() {
  setTimeout(function() {
    recognize_content_by_link();
  }, 0);
});
于 2013-01-11T23:49:38.520 回答
0

我认为你需要这个:

$('a').click(function(e){
   e.preventDefault();
   recognize_content_by_link();
});
于 2013-01-11T23:50:04.680 回答
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(/^[#]/, '');
    ....
});
于 2013-01-12T00:26:45.240 回答