2013-08-05 54 views
-1

我做了一個小的腳本來記錄的錯誤在我的項目jQuery.post:除非我刷新

這張照片會告訴你一個文件名,它有錯誤的頁面我不能發佈一個以上的時間。 然後我用javascript-jquery保存自己一段時間。所以當我點擊一個錯誤(紅色的)時,它會變成綠色,如果我點擊固定的錯誤(綠色的),它會變成紅色。

enter image description here

的問題是有時我點擊了錯誤的錯誤,無法將其打開,除非我刷新頁面。恩。如果我點擊像tags plugin(*變成綠色*)那樣的錯誤,那麼我再次點擊tags plugin將它變回紅色,它將不會返回,除非我刷新頁面,然後再次點擊它來打開它。

我檢查了我的代碼其罰款我不知道問題是什麼。

while(在抓取誤差)

這裏我打印錯誤之前打印錯誤

<?php 
switch ($error['status']) { 
     case 'notfixed': 
      $error_class = "error"; 
      $error_link  = "fix".$error['id'].""; 
      break; 
     case 'fixed': 
      $error_class = "success"; 
      $error_link  = "unfix".$error['id'].""; 
      break; 
    } 

    echo " 
    <a href='".$_SERVER['PHP_SELF']."?del=".$error['id']."'> 
     <span class='del'>×</span> 
    </a> 
    <input id='errorid".$error['id']."' value='".$error['id']."' type='hidden'> 
    <input id='errorname".$error['id']."' value='".$error['name']."' type='hidden'> 
    <div id='newdiv".$error['id']."'> 
     <a id='".$error_link."'> 
      <span class='".$error_class."'>".$error['name']."</span> 
     </a> 
    </div> 
    <div class='clear'></div>"; 
?> 

相同循環內予印刷這其中的JavaScript

<script type='text/javascript'> 
     $('document').ready(function(){ 
      $("#fix<?php echo $error['id'] ?>").click(function(){ 

       var errorid = $("#errorid<?php echo $error['id']?>").val(); 
       jQuery.post('fix_error.php',{posterrorid : errorid}, 

       function(data, textStatus){ 
        if(data == 1){ 
         setInterval(function(){ 
           $("#newdiv<?php echo $error['id']?>").html("<a id='unfix<?php echo $error['id']?>'><span class='success'><?php echo $error['name']?></span></a>"); 
          }, 1000); 
        }else{ 
         setInterval(function(){ 
           $("#newdiv<?php echo $error['id']?>").text('error insert'); 
          }, 1000); 
        } 
       }); 
      }); 

      $("#unfix<?php echo $error['id'] ?>").click(function(){ 

       var errorid = $("#errorid<?php echo $error['id']?>").val(); 
       jQuery.post('unfix_error.php',{posterrorid : errorid}, 

       function(data, textStatus){ 
        if(data == 1){ 
         setInterval(function(){ 
           $("#newdiv<?php echo $error['id']?>").html("<a id='fix<?php echo $error['id']?>'><span class='error'><?php echo $error['name']?></span></a>"); 
          }, 1000); 
        }else{ 
         setInterval(function(){ 
           $("#newdiv<?php echo $error['id']?>").text('error insert'); 
          }, 1000); 
        } 
       }); 
      }); 
     }); 
    </script> 

回答

2

嘗試使用這樣的語法:

$("#fix<?php echo $error['id'] ?>").live('click',function(){ 
..... 
}); 

$("#unfix<?php echo $error['id'] ?>").live('click',function(){ 
..... 
}); 

因爲當你點擊的第一次,要更換動態的HTML代碼, 所以下一次,當你點擊一個動態生成的html代碼不會被發現,所以你必須使用.live功能。

REFER

+0

我是jQuery和JavaScript的新手,我該怎麼做功能?我打印的HTML? –

+0

@AbdullahSalma閱讀sam提到的文檔並試用一下它... – Ben

+0

它已被刪除?在v 1.9中 –

相關問題