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' 
        }
    });
}

欢迎任何想法,并提前致谢。

4

3 回答 3

3

只需将代码添加到 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/

于 2012-04-19T00:53:52.790 回答
2
$(function() {
  checkStatus();
});
于 2012-04-19T00:54:22.340 回答
0

感谢大家,我真的很感谢您花时间和精力回答我的问题,我是该网站的“新手”,让我告诉您,在这第一印象之后,我会长期在这里:)。

关于这个问题,你们中的大多数人都注意到我从实践中学习并且我并没有真正深入了解,我尝试尽可能多地关注并阅读我发现的所有内容,无论如何,我的朋友确实有对此的深刻理解注意到,在我的 xul 文件中,脚本是这样设置的:

<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 没有正确加载。在我们修复了 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。

所以再次感谢大家,我希望有一天我能回报你的青睐:D。

在阅读了 epascarello 的回复后,我问,确实“getElementById”不是必需的。

最终代码

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)
}
于 2012-04-19T23:08:47.603 回答