2012-04-19 9 views
0

私はこのjsを使ってサーバステータスをapiで表示するという特別なボタンを作ったのですが、私の問題はブラウザを初めて開くときに自動でロードすることができないということです実際にボタンをクリックしなければ、それ以外の場合はランニングを開始しません。ブラウザが開いているときにロード

function checkStatus(event) 
{ 
    jQuery.getJSON("url",function(data){ 
     var button = document.getElementById("ServStat"); 
     if (data.status == '1') { 
      jQuery('#ServStat').addClass('online').removeClass('offline'); 
      button.label = 'Online'; } 
     else { 
      jQuery('#ServStat').addClass('offline').removeClass('online'); 
      button.label = 'Offline' 
     } 
    }); 
} 

アイデアは歓迎されており、事前に感謝いたします。

+1

は全く何のために使用されているイベントですか?なぜあなたはjQueryとgetElementByIdを混ぜていますか? – epascarello

+0

まずは、本当に "イベント"と "getElementById"が本当に不便でした。 – Minnen

答えて

2

コードをdocument.ready関数に追加するだけです。ドキュメントが完全にロードされたときに実行されます。

だからあなたのコードは、何かのように、

$(document).ready(function() { 
    jQuery.getJSON("url", function (data) { 
        var button = document.getElementById("ServStat"); 
        if (data.status == '1') { 
            jQuery('#ServStat').addClass('online').removeClass('offline'); 
            button.label = 'Online'; 
        } else { 
            jQuery('#ServStat').addClass('offline').removeClass('online'); 
            button.label = 'Offline' 
        } 
    }); 
}); 

になりますあなたがここに詳細を取得することができます誰にhttp://api.jquery.com/ready/

+0

友人はまた、私が彼に問題を話したときにこれを示唆しました、残念なことに、私はなぜ知っていませんが、どちらもうまくいきません。アイデアと興味をありがとう – Minnen

+0

これはJqueryの場合、これはやり方です:)あなたはおそらく構文エラーなどをしているでしょう。ボタンクリックイベント内でコードを入力していないことを確認してください。 –

+0

問題は、ボタンにイベントが必要ですが、ブラウザが開いているときにロードする必要があることです。ブラウザが起動した後にイベントを実行する必要があることを確認してください。ボタンを使用したいときはいつでも:/ – Minnen

1
$(function() { 
    checkStatus(); 
}); 
+0

も働いていませんでした。アイデアと興味をお寄せいただきありがとうございます。 – Minnen

0

おかげで、私は本当にあなたが私に答えるために時間と労力を要したappreaciate質問、私はサイトに "新しい"と私はこの最初の印象の後、長期的にここに教えてみましょう:)。

あなたのほとんどは、練習から学んでいることに気付きました。私は本当に深い理解を持っていません。できる限り多くの注意を払って、私が見つけたすべてを読もうとします。

<script type="application/x-javascript" src="chrome://neverendlessbar/content/serverstatus.js" /> 
<script type="application/x-javascript" src="chrome://neverendlessbar/content/jquery-1.7.2.js" /> 
<script type="text/javascript"> 
    $.noConflict(); 
</script> 

正しい方法だったとき:

<script type="application/x-javascript" src="chrome://neverendlessbar/content/jquery-1.7.2.js" /> 
<script type="text/javascript"> 
    $.noConflict(); 
</script> 
<script type="application/x-javascript" src="chrome://neverendlessbar/content/serverstatus.js" /> 

jQueryの波平のlodingを適切に誰がこのの深い理解が私のXULファイルにスクリプトが次のように設定されていることに気づいていません。 jQueryエラーを修正した後、単純に "checkStatus();"を追加しました。

function checkStatus(event) 
{ 
    jQuery.getJSON("url",function(data){ 
    var button = document.getElementById("ServStat"); 
    if (data.status == '1') { 
    jQuery('#ServStat').addClass('online').removeClass('offline').attr('label','Online');} 
    else { 
    jQuery('#ServStat').addClass('offline').removeClass('online').attr('label','Offline');}}); 
} 
checkStatus(); 

最初の実行で作業したコード:D。

皆さん、ありがとうございました。私はいつかお返事したいと思います。

epascarelloの返信を読んだ後、私は本当に "getElementById"を尋ねました。

FINAL CODE

function checkStatus() 
{ 
    jQuery.getJSON("url",function(data){ 
    if (data.status == '1')  {jQuery('#ServStat').addClass('online').removeClass('offline').attr('label','Online');} 
    else  {jQuery('#ServStat').addClass('offline').removeClass('online').attr('label','Offline');}}); 
} 
checkStatus(); 
{ 
    setInterval(changeState, 300000) 
} 
関連する問題