2016-12-28 33 views
0

我使用AJAX後jQuery中,通過該頁面的一部分是建立運行。但問題是它只運行一次。這裏是我的代碼如下jQuery的AJAX只是首次

<html> 
    <head> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
    <script> 
     var res; 
     function on(id){ 
     var dat = ''; 
     $.ajax({ 
      url: 'ajax.php', //This is the current doc 
      type: "GET", 
      data: {a: id }, 
      success: function(data){ 
      res = data; 
      data += '<div class="white" id="white" style="display:none">'; 
      var result = $.parseJSON(res); 
      $.each(result, function(k, v) { 
       //display the key and value pair 
       dat += "<a href = 'javascript:void(0);' onclick='on("+ k +")'>"+ v+"</a><br>"; 
      }); 
      document.write(dat); 
      } 
     }); 
     } 
    </script> 

    </head> 
    <body> 
    <a href="javascript:void(0);" onclick="on(8);">Get JSON data</a> 
    </body> 
</html> 

點擊第一次後,頁面顯示結果後繼續加載。而第二後單擊它顯示錯誤ReferenceError: on is not defined

實際上它應該發生在每次點擊href id時都會在jquery函數中傳遞,並基於該sql查詢運行返回數據並顯示新的頁面數據。每次在href上單擊這個應該會發生。

+1

工作正常,我在這裏https://plnkr.co/edit/tcbHOtSL69rN7hSk3SXY – Deep

回答

1

你真的應該重新考慮你的事件處理:

$(function() { 
 
    var res; 
 
    $(".getJson").click(function (e) { 
 
    e.preventDefault(); 
 
    var dat = ''; 
 
    var id = $(this).data(id); 
 
    $.ajax({ 
 
     url: 'ajax.php', //This is the current doc 
 
     type: "GET", 
 
     data: {a: id}, 
 
     success: function(data) { 
 
     res = data; 
 
     data += '<div class="white" id="white" style="display:none">'; 
 
     var result = $.parseJSON(res); 
 
     $.each(result, function(k, v) { 
 
      //display the key and value pair 
 
      dat += "<a href = 'javascript:void(0);' onclick='on(" + k + ")'>" + v + "</a><br>"; 
 
     }); 
 
     $("#output").append(dat); 
 
     } 
 
    }); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
 
<a href="javascript:void(0);" data-id="8" class="getJson">Get JSON data</a> 
 
<span id="output"></span>

+0

還是同樣的問題 – smarttechy

+0

什麼的輸出PHP文件。讓我們來解決這個問題@smarttechy ... –

+0

你有一些問題,比如'dat',而不是'data' @smarttechy ... –