1

私は混乱しています。このスクリプトを実行する前にjQuery1.7ライブラリを含めました。

var rq;

function request(localTarget, parameter)
{
    $("#" + localTarget).text("Laden...");
    rq = new XMLHttpRequest();
    rq.open("GET", parameter, false);
    rq.onreadystatechange = auswerten(localTarget, parameter);
}

function auswerten(target, site)
{   
    if (rq.readyState == 4 && rq.status == 200) {
        $("#" + target).text(rq.responseText);
    } else {
        $("#" + target).text("Wert konnte nicht geladen werden");
    }
}

しかし、テキストが表示されません。すべてを試しましたが、機能しません。

テキストを挿入したいHTMLコードは次のようになります。

<table width='100%' cellpadding='4' cellspacing='0'>
<tr>
  <td class='tablesubheader' width='50%'>Typ</td>
  <td class='tablesubheader' width='50%'>Wert</td>
</tr>

<tr>
<td>Geld heute</td>
<td><div id="money_today">Test</div></td>
</tr>

<tr>
<td>Geld Monat</td>
<td id="money_month"></td>
</tr>

<tr>
<td>Klicks heute</td>
<td id="klicks_today"></td>
</tr>

<tr>
<td>Klicks Monat</td>
<td id="klicks_month"></td>
</tr>

</table>
</td>

上記のメソッドは次のように呼び出されます。

<script type="text/javascript">
$(window).load(function() {
    request('money_today','<?php echo $link1; ?>');
    request('money_month','<?php echo $link2; ?>');
    request('klicks_today','<?php echo $link3; ?>');
    request('klicks_month','<?php echo $link4; ?>');
});
</script>
4

3 に答える 3

1

コードを内部に移動$(document).readyし、.text の代わりに .html を使用します。

変更されたコード: jquery ロード

    function request(localTarget, parameter)
    {
        $("#" + localTarget).("Wert konnte nicht geladen werden");
        $("#" + localTarget).load(parameter);
    }

注:rq.onreadystatechange関数の戻り値ではなく、ロードする関数参照を提供する必要があります。auswerten(localTarget, parameter);undefined を に割り当てonreadystatechangeます。

于 2012-10-13T18:06:30.883 に答える
0

問題は、処理しようとしている要素がページに存在する前、つまりページが読み込まれる前にコードが実行されている可能性があります。そのコードを次の中に入れてみてください。

$(document).ready(function() {
    // Your code here
});
于 2012-10-13T18:04:35.040 に答える
0
rq.onreadystatechange = auswerten(localTarget, parameter);

ここで関数を呼び出しています。あなたはそれをしません - ブラウザは応答が到着したときに関数を呼び出す必要があります:

// pass a function (that you don't call), which in turn calls `auswerten`
rq.onreadystatechange = function() {
  auswerten(localTarget, parameter);
};

とにかく、jQuery に$.ajaxはクロスブラウザー正規化機能が組み込まれており、より高速に使用できます。

于 2012-10-13T18:16:37.010 に答える