1

我的问题是:

是否可以使用 jQuery 在 click 函数中执行 Ajax 请求?(见下面的例子),如果是这样,我做错了什么?因为我无法执行任何请求(我通过我的成功功能提醒数据并且没有检索到任何内容)。

非常感谢您的帮助!:)

 function tracker(){

    this.saveEntry = function(elementTracked, elementTrackedType){      
    var mode = "save";
    var dataPost = "mode="+mode+"&elementTracked="+elementTracked+"&elementTrackedType="+elementTrackedType;        
    $.ajax({
        type: "POST",
        url: 'myURL',
        data:dataPost,
        success:function(msg){
            alert(msg);             
        },
        beforeSend:function(msg){
            $("#trackingStatistics").html("Loading...");
        }
    });
    return;
},
    this.stopLinksSaveAndContinue = function(){
    var fileName;
    $("a[rel^='presentation']").click(function(e){      
        fileName = $(this).attr("rel").substring(13);   
        this.saveEntry(fileName,"Presentation");                                        
    })                  
}

}

4

3 回答 3

1

您是否考虑过请求可能失败的可能性。如果是这样,您将永远不会触发警报。

你能确认beforeSend回调被触发了吗?

另外,我假设'myURL'这不是在你的真实世界的源代码中吗?

},关闭你的函数也可能有问题。

于 2010-02-15T12:57:02.283 回答
1

我猜测正在生成某种错误。尝试添加

  error:function(a,b){
        alert(a);             
    },

“成功”之后

于 2010-02-15T12:57:56.460 回答
1

如果您的锚点与href属性链接,那么这可能会中断您的 AJAX 请求。最近在以下 Stack Overflow 帖子中讨论了类似的问题:

如果您真的想坚持使用 AJAX 进行链接跟踪,您可能需要执行以下操作:

<a href="#" onclick="tracker('http://www.google.com/'); return false;">Link</a>

使用以下 JavaScript 逻辑:

function tracker(url) {
    $.ajax({
        type: 'POST',
        url:  'tracker_service.php',
        data: 'some_argument=value',

        success: function(msg) {
            window.location = url;
        }
    });           
}
于 2010-02-15T13:16:01.043 回答