0

私はこれと非常によく似た問題から始めました: Jquery : 新しいコンテンツが異なる場合にのみコンテンツを置換します

受け入れられている解決策を試しましたが、想定どおりに機能しないようです。私は最初にネイティブソリューションを試し、div のものを入れました。次に、jQuery のサイトhttp://api.jquery.com/data/で関数を検索して、最後の例に従ってコードを修正しました。正確に何が起こっているかを確認するためにデータにアラートを出そうとしましたが、かなりの量のデータであるため、すべてを MD5 ハッシュしました。

私の問題は、最初のアラートが未定義で戻ってきて、2 番目のアラートが実際には定義済みであるということです。私は何か間違ったことをしていますか?この保存されたデータが消える原因は何ですか?

私の現在のコード:

function setDiv(data) {
    newData = md5(data);
    if ($('#myDiv1').data('oldData') != newData) {
        $('#myDiv1').fadeTo("fast", 0, function () {$(this).html(data).fadeTo("fast", 1)});

        alert($('#myDiv1').data('oldData'))

        $('#myDiv1').data('oldData',md5(data));
        alert($('#myDiv1').data('oldData'))
    }
}

そして私のスクリプトヘッダー(2番目のものはmd5関数用です):

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="http://www.myersdaily.org/joseph/javascript/md5.js"></script>

すべての意図と目的のために、関数に供給されるデータは正しいです...とにかく、私が見ることができたものです。設定後も機能します。しかし、私は setTimeout がそれを行うたびにそれを更新したくないだけでなく、BAM だけでなく、物事がフェードアウトしてフェードインするのが好きです。

現在のコードでは、データは同じですが、フェード インとフェード アウトだけです。そして明らかに、開始時に undefined 、終了時に md5 という警告が表示されます。毎回終了時に同じ md5 なので、間違いなく同じデータです。しかし、最初のアラートが未定義であることが問題です。

上記の関数にデータを送信する関数:

function loadDivContent(arg1,arg2) {
    $.post('divContent.php',{arg1:arg1,arg2:arg2})
    .done(function(data) {
        setDiv(data)
    });
}
4

0 に答える 0