如何让我的脚本/ jquery-ajax继续响应点击?

时间:2013-10-08 13:15:01

标签: javascript php ajax jquery

仍然是编程和标记新手...

我有几个小的输入/输出按钮,可以从mysql表中读取和写回来跟踪不同的用户是否可用。但我只能点击一次按钮来改变状态。之后,它停止响应。我怎样才能让它继续工作?感谢!!!!

list.php的

<html>
   <head>

   <script src="http://code.jquery.com/jquery-latest.js"></script>

   <script>
      $(function(){
         $(".rating").on("click", function(){
            var status = $(this).attr("id").substr(0,1);
            var id = $(this).attr("id").substr(1);
            var data = "id="+id+"&status="+status;

            $.ajax({
               type: "POST",
               url: "rate.php",
               data: data,
               success: function(e){
                  $("#r"+id).html(e);
               }
            })
         });
      });
   </script>

   <style>.rating { cursor: pointer; }</style>

   </head>

<body>
   <?php

   include ("headers.php");
   $qq = mysql_query("SELECT * FROM $io");


   while($rr=mysql_fetch_array($qq)){
      $id = $rr["id"];
      $content = $rr["status"];

      include("buttons.php");

      $list .= '<div style="border-bottom: 1px #32baed solid">'.$q[0].'
               <div id="r'.$id.'"><img class="rating" id="'.$q[0].$id.'" 
               src="'.$color.'"> '.$status.'</div></div><br><br>';
   }

   echo $list;

   ?>
</body>
</html>

rate.php

<?php
include ("headers.php");
$id = $_POST["id"];
$status = $_POST["status"];

if($status == 0){
    mysql_query("UPDATE $io SET status = 1 WHERE id='$id'");
}
else {
    mysql_query("UPDATE $io SET status = 0 WHERE id='$id'");
}
include("buttons.php");

$list = '<img class="rating" id="'.$q[0].$id.'" src="'.$color.'"> '.$status;
echo $list;

?>

buttons.php

<?php

$q = mysql_query("SELECT status FROM $io WHERE id='$id'");
$q = mysql_fetch_array($q);

if($q[0]){
    $color = "green.png";
}
else{
    $color = "red.png";
}

?>

headers.php

<?php

$c = mysql_connect("localhost", "username", "password");
$db = mysql_select_db("likes", $c);


$io = 'io';
?>

2 个答案:

答案 0 :(得分:2)

替换

$(".rating").on("click", function(){

使用

$(document).on("click", ".rating", function(){

答案 1 :(得分:1)

你必须这样做:

$(document).on("click", ".rating", function(){
    //YOUR CODES HERE
});

并确保这些代码不在文档就绪功能之内。

阅读文档以获取有关.on()

的帮助