$(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%"
});
});
});
}
});
});
});
点击product-item后,产品部分淡出,然后淡入所有正确的信息,但php没有读取帖子数据,需要注意的是要让点击功能正常工作我必须放置这个div id产品后的脚本。
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
答案 0 :(得分:1)
你的代码中有一些奇怪的东西。
1)您不在任何地方使用AJAX调用的响应。 success
接受一个参数来提供来自呼叫的响应,但你永远不会使用它。
$.ajax({
...
success: function(resp) {
// do something with resp object
}
});
2)你的函数中有一个return false;
语句,它将在AJAX调用完成后立即执行(它不会等待)。因此,您的函数将始终立即返回false,不确定这是否是您正在寻找的行为。
除了这两项之外,您是否可以使用Chrome内置或Firebug等XHR调试器,并查看服务器实际发送/接收的内容?