2017-02-21 7 views
0

$function(){ and $window.onload() - これをどう対処するのか分かりませんか? $('#ashift').on('click',function(){私は再び射撃するためにアヤックスコールが必要ですか?私はそれを関数にラップし、ページのロード時に関数を呼び出すか、再度clickイベントで呼び出すか、より良い方法がありますか?ajax呼び出しで変数clicked_shiftを更新する必要があります。クリックイベントのリコールajax

<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> 
+0

'.live()'は非推奨です。 – Pointy

+0

jQuery 1.7以降、 '.live()'メソッドは非推奨です。 '.on()'を使ってイベントハンドラをアタッチしてください。古いバージョンのjQueryのユーザは '.live()'よりも '.delegate()'を使うべきです。 –

+0

私は今バージョン1.3に固執しています – BarclayVision

答えて

0

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()
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
 
<div id="ashift">click</div>

$(function(){});$(document).ready(function(){});のようなDOMが完全にロードされたときにトリガされます自己呼び出さ無名関数です。後で関数を再呼び出しするには、宣言するか変数に代入する必要があります。 '

+0

ありがとう、それは私の質問だったことthats。 – BarclayVision

関連する問題