use*_*694 9 javascript function onclick href
我有一个链接加载页面并在点击时调用javascript函数.问题是在页面重定向之前javascript函数无法完成.反正有没有确保它呢?
您会注意到alert()javascript函数中有一个被注释掉的内容,如果我取消注释它,该函数就能完成.但是,我显然不希望实际发生警报弹出窗口.
链接在这里 :
<a href="p.php?p=$randString&s=$postCat" onclick="setYSession();">
Run Code Online (Sandbox Code Playgroud)
这是无法及时完成的javascript函数:
function setYSession() {
var YposValue = window.pageYOffset;
$.get('yPosSession.php?yValue=' + YposValue);
//alert(YposValue);
return false;
}
Run Code Online (Sandbox Code Playgroud)
nnn*_*nnn 13
尝试更改onclick以返回函数的结果:
echo "<a href='p.php?p=$randString&s=$postCat' onclick='return setYSession();'>";
Run Code Online (Sandbox Code Playgroud)
或明确返回false:
echo "<a href='p.php?p=$randString&s=$postCat' onclick='setYSession();return false'>";
Run Code Online (Sandbox Code Playgroud)
鉴于您的函数返回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;
}
Run Code Online (Sandbox Code Playgroud)
理想情况下,特别是因为您似乎使用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;
});
Run Code Online (Sandbox Code Playgroud)