0

我从一个与这个问题非常相似的问题开始:Jquery : remplace content only if the new content is different

我已经尝试了公认的解决方案,但它似乎并没有按预期的方式工作。我首先尝试了本机解决方案,只需放入我的 div 内容。然后我尝试在 jQuery 的网站上查找该函数:http: //api.jquery.com/data/并根据最后一个示例修复了我的代码。我试着提醒数据看看到底发生了什么,但这是相当数量的数据,这就是为什么我对所有的 MD5 都进行了哈希处理。

我的问题是第一个警报未定义返回,而第二个警报实际上已定义为外出。难道我做错了什么?什么会导致这些存储的数据消失?

我当前的代码:

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

还有我的脚本头(第二个是 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。

现在,使用当前代码,它只是淡入淡出,即使数据相同。显然在开始时提醒我未定义,在结束时提醒我 md5。每次完成时都使用相同的 md5,因此它绝对是相同的数据。但是第一个警报是未定义的,这就是问题所在。

将数据提交给上述函数的函数:

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

0 回答 0