我有一个载入页面,并呼吁点击一个JavaScript函数的链接。 问题是JavaScript函数的页面重定向之前无法完成。 反正,以确保它呢?
你会发现有一个alert()
是在JavaScript函数注释掉,如果我取消它的功能是能够完成。 然而,我显然不希望一个警报弹出,以实际发生。
链接在这里 :
<a href="p.php?p=$randString&s=$postCat" onclick="setYSession();">
这里是不能按时完成的javascript函数:
function setYSession() {
var YposValue = window.pageYOffset;
$.get('yPosSession.php?yValue=' + YposValue);
//alert(YposValue);
return false;
}
尝试改变onclick
来回报您的函数的结果:
echo "<a href='p.php?p=$randString&s=$postCat' onclick='return setYSession();'>";
或者明确地返回false:
echo "<a href='p.php?p=$randString&s=$postCat' onclick='setYSession();return false'>";
鉴于你的函数返回false
,无论哪种方式将停止默认事件行为,即,它会停止链接导航的。 然后你的函数中,您可以添加代码来执行导航您的Ajax完成后:
function setYSession() {
var YposValue = window.pageYOffset;
$.get('yPosSession.php?yValue=' + YposValue, function() {
window.location.href = 'p.php?p=$randString&s=$postCat';
});
return false;
}
理想情况下,特别是因为你似乎是使用jQuery的$.get()
我的onclick删除内联做这样的事情:
echo "<a href='p.php?p=$randString&s=$postCat' id='myLink'>";
$("#myLink").click(function() {
var YposValue = window.pageYOffset,
myHref = this.href;
$.get('yPosSession.php?yValue=' + YposValue, function() {
window.location.href = myHref;
});
return false;
});
<script>
function a()
{
setYSession();
window.location.href = "p.php?p=$randString&s=$postCat";
return false;
}
</script>
...
<a href='javascript: void(0);' onclick='a();'>click me</a>