想象一下下面的标记:让jQuery在读取href之前等待href更改?
<a href="#link01">1</a>
<a href="#link02">2</a>
和:
$('a').click(function(){
var href = $(location).attr('href'),
hrefLenght = href.length,
hrefPos = href.indexOf("#"),
hrefPage = href.slice(hrefPos+1);
alert(hrefPage);
});
现在,会发生什么你点击一个链接是jQuery的提醒hrefPage
这是那里你点击了链接,不以前后如预期的那样,在之后的。因此:
1)我位于http://www.example.com/#link01
2)单击链接
3,结果)link01
是呼应
3,预期)link02
是呼应
任何想法如何解决这一问题?
编辑:我为什么使用位置而不是href?因为我希望前面的代码也可以在页面加载href时没有任何被单击的情况下工作,我不认为为同一个进程编写两段代码是一个好主意吗?
你trrying实施“页面位置发生改变, “处理程序与链接点击处理程序。它不这样工作。对于初学者来说,'click'会触发_first_,但还有其他原因无法使用。只需要链接的“href”属性。 – 2012-01-17 16:27:04
编辑了这个问题。 – 2012-01-17 16:28:41
不,链接的点击处理程序不会因为您加载页面而奇迹般地触发。如果你想避免代码重复,把逻辑封装在一个函数中,并在多个处理程序中调用它。 – 2012-01-17 18:59:41