点击链接后,我有这个用于隐藏广告框的jquery代码:
$('a.close').click(function () {
var parent = $(this).parent().parent();
var adid = $(parent).attr('id');
$.ajax({
type: "POST",
url: "./setcookie.php",
data: "adid=" + adid,
cache: false,
dataType: 'json',
success: function (cook) {
if (cook.set === 'success') {
parent.fadeOut(1000);
}
},
error: function () {
$(".guestwarn").html("<font color='red'>There was an error submitting the form. Please try again.</font>").fadeIn(1000);
}
});
return false;
});
所以我希望通过cookies关闭框。 我的HTML(php)是:
<?php if(isset($_COOKIE[ "msg1"])){?>
<div id="msg1" class="msgbox">
<div class="guestwarn">
<a href="#" class="close">X</a>
Something goes here...
</div>
</div>
<?php } ?>
所以我的工作setcookie.php是:
$adcookies = array();
$value = $_POST['adid'];
if ($value) {
setcookie($value, $value, time() + 3600);
if (isset($_COOKIE[$value])) {
$adcookies['set'] = "success";
} else {
$adcookies['set'] = "error";
}
echo json_encode($adcookies);
}
为什么adbox(.msgbox)会在两次点击后隐藏? 这些代码有什么问题? 谢谢
答案 0 :(得分:0)
我敢打赌饼干。如果您设置了一个cookie,那么在您刷新页面后(在您的第二个AJAX请求中),您将“可见”,这就是您必须单击两次的原因。您可以使用会话而不是cookie来解决它。