0

我对这段代码有疑问:

setInterval(function() {
        var timed = $("#chMsgCont").find(".chatMsg:last-child");
        var timee = timed.attr("data");
        $.ajax({
            url: "./ajax/checknew.php",
            data: {timestamp: timee},
            success: function(data) {
                $("#chMsgCont").append(data);
                if(data != null) {
                var div = $('#chMsgCont');
                var o = div.offset().top; 
                div.scrollTop( o + 12302012 );
                }
            }
        });
    },1000);

即使数据为空,$("#chMsgCont)向下滚动,为什么?

4

2 回答 2

1

试试这种方式:

if(data)

或者这样:

if(data != null && data != "")

基本上,if(data)在这些情况下被认为数据是错误的:

  • 数据是 "" 或 '' => 空字符串

  • 数据是假的

  • 数据为空

  • 数据未定义

于 2012-08-09T21:51:52.477 回答
0

data只是空的而不是null(未定义)所以它会通过,尝试在你的 PHP 文件中返回一些额外的东西。

我更喜欢在 PHP 端执行以下操作:

/* suppose that i am evaluating an insert to my DB */
print(1); //if success

print(0); //if error

然后在 javascript 端,执行以下操作:

if(data == 1) //means success

或者如果您没有在 PHP 端评估某些内容,则只需执行以下操作:

if(data != null && data != '')
于 2012-08-09T21:50:51.817 回答