在点击事件中回忆ajax

时间:2017-02-21 15:12:00

标签: javascript jquery

$function(){ and $window.onload() - 我不确定如何处理这个问题?在$('#ashift').on('click',function(){我需要ajax再次开火吗?我应该将它包装在一个函数中并在页面加载时调用该函数,然后再在click事件中调用,或者是否有更好的方法 - 我需要在ajax调用中更新clicked_shift变量。

 <script id="source" language="javascript" type="text/javascript">

  var clicked_shift = "C";

  $('#ashift').on('click', function(){
    clicked_shift = "A";
  });

  $(function () {

    $.ajax({                                      
      url: 'county.php',                         
      data: {action:"tt"},                                             
      dataType: 'json',                   
      success: function(data){
      alert(clicked_shift);
        $.each(data, function(key, val) {
            if (val.completed == 1) {
            color = "green";
            } else {
            color = "red";
            }
            if (val.Shift == clicked_shift){
                $('#station'+val.Station+' .snum').append("<span style='color:"+color+"'>" + val.LastName + "</span><br/>"); 
            }
        });
      } 

    }); // end ajax
}); // end of function()
  </script>

1 个答案:

答案 0 :(得分:0)

&#13;
&#13;
 var clicked_shift = "C";
function ajaxCall(){ // function declaration
  console.log("clicked_shift",clicked_shift);
}

  $(function () {
    ajaxCall(); // call function ondomready
    
  $('#ashift').live('click',function(){
    clicked_shift = "A"; // change variable value
    ajaxCall(); // re-invoke the function
  });
}); // end of function()
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<div id="ashift">click</div>
&#13;
&#13;
&#13;

$(function(){});就像$(document).ready(function(){});一个自调用的匿名函数,它将在dom完全加载时触发。要在以后重新调用某个函数,您需要声明它或将其赋值给变量。