発生している問題・エラーメッセージ
wordpress でajaxを使用してhtmの更新を行なっています
スクロールの位置を保持するために、
下記のようにタイマーで3秒おきにhtmlを取得しているのですが、
htmlの内容に変化がないにもかかわらず、
element.getBoundingClientRect().left で取得するごとに数値が大きく異なります()
手動でリロードすると毎回867.875なのですが
タイマーでajaxを投げると下記のように2回ずつ下記のようなログが取得されます
[object HTMLDivElement]--867.875
[object HTMLDivElement]---79.625
[object HTMLDivElement]--867.875
[object HTMLDivElement]---79.625
[object HTMLDivElement]--867.875
[object HTMLDivElement]---79.625
[object HTMLDivElement]--867.875
[object HTMLDivElement]---79.625
わけがわからず困っています。
何かアドバイスをいただけると助かります
該当のソースコード
JS
1 2setInterval((function() { 3 4 $.ajax({ 5 type: "post", 6 dataType: "json", 7 url: '<?php echo admin_url('admin-ajax.php'); ?>', 8 data: { 9 //Action 10 action: "loadpost", 11 math_id: <?php echo $terms_id; ?>, 12 }, 13 context: this, 14 success: function(response) { 15 if (response.success) { 16 17 $('#gvt-edd-grid-container').html(response.data); 18 19 //スクロールしたい要素のID 20 var slideid = $("#" + game_id + "").text(); 21 var element = document.getElementById(slideid); 22 bounds = element.getBoundingClientRect().left + window.pageXOffset - (50 * 2); 23 console.log(element + "--" + bounds); 24 25 } else { 26 console.log(response); 27 } 28 }, 29 error: function(jqXHR, textStatus, errorThrown) { 30 console.log('loadpost error occured: ' + textStatus, errorThrown); 31 } 32 }) 33 return false; 34}), 3000)
試したこと
タイマーの秒数を長くしたり、しましたが
変化がなく、困っています

回答1件
あなたの回答
tips
プレビュー