簡體   English   中英

jquery函數只工作一次?

[英]jquery function only working once?

我有這個函數,假設改變跨度的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);
?>

你的javascript中有一個拼寫錯誤,你已經把vailspan放在if(msg === "available") { line后面的availspan

如果不是這樣,請嘗試將click事件更改為live事件:

$('#availabilityicon').live('click', function() {

以防你的javascript覆蓋#availabilityicon圖標元素並且無法將事件重新附加到新的

您單擊的“availablebiltyicon”將被另一個具有相同名稱的替換。 您可以嘗試使用.live(),也可以閱讀事件委派。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM