亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

未捕獲的類型錯誤:當我的目標是追加元素時,$(...).offset() 未定義

未捕獲的類型錯誤:當我的目標是追加元素時,$(...).offset() 未定義

撒科打諢 2023-08-18 16:25:02
我的控制臺出現錯誤:未捕獲的類型錯誤:$(...).offset() 未定義<div>在此之前,我使用 id創建了父級contentMessage,我從數據庫中獲取了所有數據,并進行了 jQuery 操作以在成功響應中循環該數據,我循環元素 a </div class"alert">,然后將其附加到我的父級中<div id="contentMessage">。當我想自動滾動到附加的最新警報時,出現錯誤。//my append element into `<div id=contentMessage>`$.ajax({  url: "<?= $apiEndpoint ?>/message/",  type: "GET",  data: {    outlet_from: outlet_from,    outlet_to: outlet_to,    from: id_from,    to: id_to  },  dataType: "JSON",  success: function(res) {    let a = 0    let resCount = res.length    window.count = resCount -= 1    if (res.length == 0) {      var append = $('<div/>', {        "class": "parent_message p-2",      }).append(        $('<div/>', {          'class': 'text-center',          text: 'Tidak Ada Pesan'        })      )      $("#contentMessage").append(append)    }    $.each(res, function(key, val) {      var d = new Date(res[a].created_at)      if (d.getMinutes() < 10) {        var times = d.getHours() + ":" + "0" + d.getMinutes()      } else {        var times = d.getHours() + ":" + d.getMinutes()      }      if (res[a].from === <?= $user_id ?>) {        if (a == window.count) {          window.message = $('<div/>', {            "class": "alert alert-primary alert-dismissible alertFrom ",            "id": "resMessage",            text: res[a].message          }).append($('<small/>', {            text: times          }))        } else {          window.message = $('<div/>', {            "class": "alert alert-primary alert-dismissible alertFrom",            text: res[a].message          }).append($('<small/>', {            text: times          }))        }這是我的滾動代碼:window.setTimeout(function() {  $('.contentMessage').animate({    scrollTop: $("#resMessage").offset().top  }, 3000);}, 2000);
查看完整描述

1 回答

?
斯蒂芬大帝

TA貢獻1827條經驗 獲得超8個贊

只需將“scrollfunction”放置在創建 id resMessage 的元素的代碼下方即可。否則(在您的示例中,如果 ajax 響應和元素創建花費的時間超過 2000 毫秒,則該元素將不存在,您將看到您描述的錯誤)


success:function(res){


  ...


  window.setTimeout(function() {

    $('.contentMessage').animate({

      scrollTop: $("#resMessage").offset().top

    }, 3000);

  }, 2000);

}

可能不再需要超時了;)


查看完整回答
反對 回復 2023-08-18
  • 1 回答
  • 0 關注
  • 135 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號