on锚点运行部分功能的onclick事件

时间:2014-08-15 12:04:50

标签: javascript

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。

非常感谢。             }

3 个答案:

答案 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>

感谢您的贡献。