当我使用setintervall刷新div时,jQuery旋钮未显示

qlzsbp2j  于 2023-02-15  发布在  jQuery
关注(0)|答案(1)|浏览(102)

对于我的智能住宅可视化,我将使用旋钮来改变加热温度。
此外,我使用下面的函数刷新DIV,其中的旋钮。刷新后没有旋钮,只有输入字段
我必须更改什么,刷新后也会显示该旋钮?
我不知道怎么修复,可能需要在旋钮函数中包含刷新(setInterval),但我还没有找到有效的方法。
刷新分区前的旋钮

刷新div后的旋钮

每秒刷新的函数:

$(document).ready(
  function() {
    setInterval(function() {
      $("#schalter").load(" #schalter > *");
    }, 1000); //Delay here =  seconds
  });

$(".knobID").knob({
  'release': function(sendpostresp) {
    $.ajax({
      url: "publish.php",
      type: "POST",
      data: {
        foo: sendpostresp,
        test: '123'

      },
      success: function(result) {
        alert(result);
      }
    });
  }
});
<div class="schalter" id="schalter">
  <input type="text" data-angleoffset=-125 data-anglearc=250 data-fgcolor="#66EE66" value="22" class="knobID" data-step=".5" data-min="0" data-max="30">
</div>
7gcisfzg

7gcisfzg1#

此问题很可能与旋钮插件的初始化和呈现方式有关。使用setInterval()刷新div时,插件的初始化代码可能无法正确执行,这可能导致旋钮无法显示。
要解决这个问题,一个可能的解决方案是在每次刷新div时重新初始化Knob插件。

function refreshDiv() {
  $.ajax({
    url: '/some/url',
    success: function(data) {
      $('#myDiv').html(data);
      $('#myKnob').knob(); // reinitialize the Knob plugin
    }
  });
}

setInterval(refreshDiv, 1000);

相关问题