2011-09-25 7 views
3

스팬의 html을 변경한다고 가정하는이 함수가 있습니다. 그것은 처음에는 작동하지만 아무 것도 변경하지 않으면 아무것도하지 않습니다. 데이터베이스가 업데이트 중이므로 쿼리가 작동하는 것 같습니다. 여기에 코드가 있습니다. 여기 jquery 함수는 한 번만 작동합니까?

$('#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); 
?> 

답변

3

, 당신은 당신이 아마 if(msg === "available") { 줄 끝에서 availspan을 넣어 의미 vailspan을 넣었습니다.

는 그 아니라면,에 click 변경 이벤트 시도해보세요 live 하나

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

이 단지의 경우 자바 스크립트가 #availabilityicon 아이콘 요소와 새로운 하나에 이벤트를 다시 연결하는 데 실패 것을 덮어 쓰기한다

+0

'맞춤법 오류'는 전혀 중요하지 않습니다. var은 jQuery 선택기의 결과로 설정되므로 스팬이됩니다. 그러나 당신은 그가 같은 id를 가진 다른 요소로 요소를 대체하고 있다고 지적했을 때 그것을 얻었습니다. +1 –

+0

방화범이 끌리는 것은 인수 목록 이후의 "누락"입니다. 그 변경 후 – vacarsu

+0

당신은 여분의 열기를 추가했습니다'('함수'바로 앞에 ... 함수를 제거하기 만하면됩니다 ... – Clive

2

"availabiltyicon"을 클릭하면 다른 이름이 같은 이름으로 바뀝니다. .live()를 사용해 보거나 이벤트 위임을 읽을 수 있습니다.

+0

$ ('# availabilityicon')을 변경했습니다. (function() {to $ ('). live ("click", (function() {그러나 이제 firebug는 인수 목록 다음에 "Missing"을 말하고있다.) 나는 .live를 사용한 적이 없기 때문에 뭔가를 깜박했다. – vacarsu

관련 문제