0
           $(function(){
                $(".product-item").click(function(){
                    var sku = $(this).attr("name");
                    var dataString = "sku="+sku;
                    $.ajax({
                        type: "POST",
                        url: "data.php",
                        data: dataString,
                        dataType: 'html',
                        success: function(){
                            $("#product").load("shop4.php #product > *", function(){
                                $("#product").delay(200).fadeOut(400);
                                $("#product").delay(601).fadeIn();
                                $(".img-wrap img").delay(500).fadeIn(300);
                                $(".img-wrap img").delay(300).animate({paddingBottom: "15%"});
                                $(".img-wrap img").hover(function(){
                                    $(this).animate({
                                        paddingTop: "5%", paddingBottom: "25%"
                                    });
                                }, function(){
                                    $(this).animate({
                                        paddingTop: "15%", paddingBottom: "15%"
                                    });
                                });
                            });
                        }
                    });
                });
            }); 

在我单击产品项目后,产品部分淡出然后淡入所有正确的信息,但是 php 没有读取帖子数据,值得注意的是,为了让点击功能正常工作,我必须将此脚本放在 div 之后标识产品。

php 很简单(这是 data.php):

<?php
global $sku;
if (isset($_POST['sku'])) {
    $sku = $_POST['sku'];
    echo $sku;
}
?>

XHR 响应

XHR finished loading: "mysite.com/shop4.php". jquery.min.js:4
f.support.ajax.f.ajaxTransport.send jquery.min.js:4
f.extend.ajax jquery.min.js:4
(anonymous function) shop4.php:238
f.event.dispatch jquery.min.js:3
f.event.add.h.handle.i jquery.min.js:3
XHR finished loading: "mysite.com/shop4.php". jquery.min.js:4
f.support.ajax.f.ajaxTransport.send jquery.min.js:4
f.extend.ajax jquery.min.js:4
f.fn.extend.load jquery.min.js:4
$.ajax.success shop4.php:243
f.Callbacks.o jquery.min.js:2
f.Callbacks.p.fireWith jquery.min.js:2
w jquery.min.js:4
f.support.ajax.f.ajaxTransport.send.d
4

1 回答 1

1

你的代码中有一些奇怪的东西。

1)您不会在任何地方使用来自 AJAX 调用的响应。 success接受一个提供调用响应的参数,但您从不使用它。

$.ajax({
    ...
    success: function(resp) {
        // do something with resp object
    }
});

2)您return false;的函数中有一条语句,它将在 AJAX 调用后立即执行(它不会等待)。所以你的函数总是会立即返回 false,不确定这是否是你正在寻找的行为。

除了这两项之外,您是否可以使用 Chrome 内置的 XHR 调试器或 Firebug 来查看服务器实际发送/接收的内容?

于 2012-07-10T17:17:00.333 回答