window.setInterval是否在这里正确使用,或者我在引入麻烦?

问题描述 投票:0回答:1

我有无法修改的来自第三方的搜索输入.searchinp。但是我想将结果从页面的左侧移至右侧。我目前使用setInterval执行此操作。我使用此setInterval的原因是,要加载的div在页面上不存在。因此,我不能在那时简单地移动它。

创建结果div .dropdown-menu之前,用户至少需要填写3个字母。

为了使其移动,我使用了此:

      window.setInterval(function(){
        /// call your function here
        $('.dropdown-menu').contents().appendTo('.knowledgebase-related-questions');
      }, 100);

哪个作品有效,但我想知道这样做是否有弊端?例如网站速度,速度缓慢或其他缺点。

javascript jquery performance window setinterval
1个回答
0
投票

如果是我,则向用户输入的内容添加一个侦听器,并进行延迟设置,因此在用户停止键入后的X秒内将调用我的函数。像这样的东西:

var keyupDelay = (function(){
  var timer = 0;
  return function(callback, ms){
    clearTimeout (timer);
    timer = setTimeout(callback, ms);
  };
})(); 


var inputSelector = '#some-id'; // adjust as needed 

$(inputSelector ).keyup(function() {
    keyupDelay(function(){
      // append or replace your html as needed
    }, 2500 ); // this will trigger 2.5 seconds after typing stops, adjust as needed
});
© www.soinside.com 2019 - 2024. All rights reserved.