【问题标题】:JQuery append is not doing as intendedJQuery 追加未按预期进行
【发布时间】:2012-11-19 05:04:30
【问题描述】:

我的 JQuery 脚本有问题。我正在做一个 2d 聊天,人们有自己的形象,比如 Habbo 酒店,但假设移动这些形象的 JQuery 脚本有问题。

我认为显示问题更容易: Click here to see the problem

我正在使用以下脚本来更新数据:

function UpdateRoom() {
    var data = 'roomId='+roomId;

    $.ajax({
        type: "GET",  
        url: "chatfunctions/updateroom.php",
        dataType: 'json',
        data: data,
        success: function(data){

            $.each(data, function(i, data) {
                var temp = parseInt(data.field);
                $('#f' + temp).append('<div class="user" id="'+charId+'" />');
            });
        }
    }); 
}

#f+temp 是图形应该放置的字段的 ID。 charId 是图形的id。

然后我每 500 毫秒调用一次脚本:

window.setInterval(function() {
    UpdateRoom();
}, 500 );

我不确定这是否足以让你们帮助我的代码和示例。如果没有,请告诉我是否需要为您提供更多帮助来帮助我。我的猜测是它是 .append();使用错误的函数,但我不是 JQuery 专家。

【问题讨论】:

  • 如您所见,append 只是复制数字,需要替换它。
  • 要替换它,请改用html()。尽管它有效,但您可能不应该将所有变量命名为data
  • 这里的 charId 是什么。我在代码中没有看到
  • 你的代码做了它应该做的事情。 Append 不会取代任何东西,也不打算这样做。我在您的代码中没有看到您删除/替换任何元素的任何地方。有关详细信息,请参阅api.jquery.com/append
  • @Sushanth---> charId 现在是“用户”的 id,它只是一个带有随机生成数字的全局变量

标签: php jquery html mysql append


【解决方案1】:

你只是继续追加而不是替换任何东西。

尝试使用 .html() 或 .empty()。

$.each(data, function(i, data) {
    var temp = parseInt(data.field);
    $('#f' + temp).html('<div class="user" id="'+charId+'" />');
});

$.each(data, function(i, data) {
    var temp = parseInt(data.field);
    $('#f' + temp).empty(); // clear out all content
    $('#f' + temp).append('<div class="user" id="'+charId+'" />');
});

不知道您的代码,您可能需要将调用移动到每个循环之外的 .empty()。

【讨论】:

  • 感谢您的回答.. 现在该网站不再像以前那样疯狂,而不仅仅是重复。我已经更新了网站,您可以尝试刷新并查看更改:)
  • @JonasHansen - 我们并不关心您网站的外观,如果答案正确,请接受它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-29
  • 2012-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-15
相关资源
最近更新 更多