使用 jQuery 跟踪链接点击的问题

发布于 2024-10-22 18:23:10 字数 758 浏览 1 评论 0原文

我有以下代码:

<a href="http://mydomain.com/link123" class="someClickEvent">Some Link</a>

$(document).ready(function(){  
    $('.someClickEvent').click(function() {
        var $deal_id = 0;
        var $position = 0;  

       var data = {
           deal_id : $deal_id,
           position : $position                                                              
       };        
        $.ajax({
            type : 'POST',
            data: data,
            url : '/ajax/trackBannerClick',
            success : function(data){
                return true;  
            }
        });             
    });
});

而且,在用户发送到新 URL 之前,单击事件似乎尚未完成。有没有办法确保点击事件在将用户发送到新 URL 之前已完成?我不想使用 window.location 因为它对 SEO 不友好。

I have the following code:

<a href="http://mydomain.com/link123" class="someClickEvent">Some Link</a>

$(document).ready(function(){  
    $('.someClickEvent').click(function() {
        var $deal_id = 0;
        var $position = 0;  

       var data = {
           deal_id : $deal_id,
           position : $position                                                              
       };        
        $.ajax({
            type : 'POST',
            data: data,
            url : '/ajax/trackBannerClick',
            success : function(data){
                return true;  
            }
        });             
    });
});

And, it seems that the click event doesn't finish completing before the user is sent to the new URL. Is there a way to make sure the click event has finished prior to sending the user to the new URL? I'd rather not use window.location since it isn't SEO friendly.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

被你宠の有点坏 2024-10-29 18:23:10

认为添加async: false可能会导致脚本在调用success函数之前等待Ajax完成:

$(document).ready(function(){  
    $('.someClickEvent').click(function() {
        var $deal_id = 0;
        var $position = 0;  

       var data = {
           deal_id : $deal_id,
           position : $position                                                              
       };        
        $.ajax({
            type : 'POST',
            data: data,
            url : '/ajax/trackBannerClick',
            async : false,
            success : function(data){
                return true;  
            }
        });             
    });
});

参考:

I think that adding async: false might cause the script to wait for the Ajax to complete before calling the success function:

$(document).ready(function(){  
    $('.someClickEvent').click(function() {
        var $deal_id = 0;
        var $position = 0;  

       var data = {
           deal_id : $deal_id,
           position : $position                                                              
       };        
        $.ajax({
            type : 'POST',
            data: data,
            url : '/ajax/trackBannerClick',
            async : false,
            success : function(data){
                return true;  
            }
        });             
    });
});

Reference:

妄想挽回 2024-10-29 18:23:10
$(document).ready(function(){  
    $('.someClickEvent').click(function(e) {
        e.preventDefault();
        var $deal_id = 0;
        var $position = 0;  
        var data = {
            deal_id : $deal_id,
            position : $position                                                              
    };        
    $.ajax({
        type : 'POST',
        data: data,
        url : '/ajax/trackBannerClick',
        success : function(data){
            window.document.href = $(this).attr('href');
            return true;  
        }
    });            
});
$(document).ready(function(){  
    $('.someClickEvent').click(function(e) {
        e.preventDefault();
        var $deal_id = 0;
        var $position = 0;  
        var data = {
            deal_id : $deal_id,
            position : $position                                                              
    };        
    $.ajax({
        type : 'POST',
        data: data,
        url : '/ajax/trackBannerClick',
        success : function(data){
            window.document.href = $(this).attr('href');
            return true;  
        }
    });            
});
山色无中 2024-10-29 18:23:10
$(document).ready(function(e){  
    $('.someClickEvent').click(function() {
        var $deal_id = 0;
        var $position = 0;  

        //change 1
        var target=jQuery(e.target).attr('href');
        e.preventDefault()

       var data = {
           deal_id : $deal_id,
           position : $position                                                              
       };        
        $.ajax({
            type : 'POST',
            data: data,
            url : '/ajax/trackBannerClick',
            success : function(data){

                //change2
                window.location=target;
                return true;  
            }
        });             
    });
});
$(document).ready(function(e){  
    $('.someClickEvent').click(function() {
        var $deal_id = 0;
        var $position = 0;  

        //change 1
        var target=jQuery(e.target).attr('href');
        e.preventDefault()

       var data = {
           deal_id : $deal_id,
           position : $position                                                              
       };        
        $.ajax({
            type : 'POST',
            data: data,
            url : '/ajax/trackBannerClick',
            success : function(data){

                //change2
                window.location=target;
                return true;  
            }
        });             
    });
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文