我有这个功能,可以改变跨度的html。它第一次工作,但任何点击后它不会改变任何东西。我知道查询正在运行,因为数据库正在更新。这是代码。
$('#availabilityicon').click(function() {
$.ajax({
type: "GET",
url: "includes/changeavailability.php",
success: function(msg) {
if(msg === "available") {
var vailspan = $('span#avail').html('<a id="availabilityicon" href="#"><img align="center" width="16px" height="16px" src="images/available.png" /></a>');
}
else if(msg === "unavailable") {
var availspan = $('span#avail').html('<a id="availabilityicon" href="#"><img align="center" width="16px" height="16px" src="images/unavailable.png" /></a>');
}
}
});
});
这是php代码
<?php
session_start();
$user = $_SESSION['username'];
include("dbcon.php");
$result = mysql_query("SELECT availability FROM user WHERE username='$user' ORDER BY id DESC") or die(mysql_error());
$row = mysql_fetch_assoc($result);
$availability = $row['availability'];
if($availability == 'yes') {
$query = mysql_query("UPDATE user SET availability='no' WHERE username='$user'") or die(mysql_error());
echo "unavailable";
}
elseif($availability == 'no' or $availability == "") {
$query = mysql_query("UPDATE user SET availability='yes' WHERE username='$user'") or die(mysql_error());
echo "available";
}
mysql_close($con);
?>
答案 0 :(得分:3)
您的javascript中存在拼写错误,您已将vailspan
放在availspan
行之后放置if(msg === "available") {
的位置。
如果不是这样,请尝试将click
事件更改为live
个:
$('#availabilityicon').live('click', function() {
以防你的javascript覆盖#availabilityicon
图标元素并且无法将事件重新附加到新的
答案 1 :(得分:2)
&#34; availablebiltyicon&#34;您单击的用另一个具有相同名称的替换。您可以尝试使用.live(),也可以阅读事件委派。