Belwo是我想要在锚标签的点击事件上执行的功能。我尝试了两种方法,但没有一种方法完全正常。
第一种方式:<a href="/" id="btn_shopping" onClick="logContinueShopping();">Continue Shopping</a>
这样我的函数就不起作用了,除非我在我的函数中放了event.PreventDefault()。但是当我在我的logContinueShopping()函数中放入event.PreventDefault()时,该函数工作正常,但锚标签不起作用。
第二种方式:<a href="#" id="btn_shopping" onClick="logContinueShopping(); document.location='/'">Continue Shopping</a>
通过这种方式,我的函数运行直到ajax请求,但是成功函数没有执行,即它没有设置cookie并将页面重定向到&#39; /&#39;。
function logContinueShopping(){
var action = 'continue_shopping';
// Check if the activity is already logged
var checkCookie = getCookie('continue_shopping');
if(checkCookie == ''){
$.ajax({
type: 'POST',
url: '/ajaxCall/user-activity-ajax.php',
data: {
action:action,
url:url
},
success: function(response)
{
document.cookie = "continue_shopping = " + action + "; path=/";
}
});
}
我会请求不要提供jQuery解决方案,因为我在这里被迫使用javascript。
非常感谢。 }
答案 0 :(得分:1)
您是否考虑在document.location
处理程序中设置success
? :
$.ajax({
type: 'POST',
url: '/ajaxCall/user-activity-ajax.php',
data: {
action: action,
url: url
},
success: function (response) {
document.cookie = "continue_shopping = " + action + "; path=/";
document.location = '/';
}
});
答案 1 :(得分:1)
试试这个: 改变href =“javascript:void(0)”
和用户window.location =“/”成功调用ajax重定向。
答案 2 :(得分:0)
我已放置async: false
并以下面的方式使用该功能
<a href="javascript:void(0)" id="btn_shopping" onClick="logContinueShopping(); window.location='/'">Continue Shopping</a>
感谢您的贡献。