永发信息网

JS的一个问题,清除标签的问题,

答案:2  悬赏:20  手机版
解决时间 2021-04-03 23:45
  • 提问者网友:最美的风景
  • 2021-04-03 07:00
不知道是我监听写的不对还是什么, 哎呀新手了,大家帮忙看下,感激不尽。
情况就是有一个输入框,我监听了它keyup的事件,每次执行获取不同的json值,然后输出,
我不想让每次获取的叠加在一块,就想一直显示固定条数。所以我每次执行的时候会先删除以前的。
一个一个的慢慢keyup触发事件是没问题的。问题是我如果连续快速输入值,这个remove的方法他就不管用了, 会罗列很多json获取的结果。

各位大大我该怎么解决。
或者说换更好的方法完成这个需要。

<script>

$('#search').keyup(function() {
$('#list li').remove()

$('#list').slideDown()
$.post("http://115.28.128.49/index.php?app=phone_shop&act=getgoods",
{
name:$(this).val(),
},
function(data,status){

var obj = eval ("(" + data + ")");

if(obj.total>0){
for(var i=0; i $("#list").prepend("
  • 店铺名称:"+obj.stores[i].store_name+"

  • ")
    }
    }

    });
    });
    </script>
  • 最佳答案
    • 五星知识达人网友:低音帝王
    • 2021-04-03 07:53
    应该把remove放到post的回调函数里。
    就是得到结果之后再清空。

    或者

    停止上一次的请求,重新发送请求。
    全部回答
    • 1楼网友:罪歌
    • 2021-04-03 09:22
    1.remove应该在post的回调里。 2.计时,当连续两次的keyup事件间隔不足1秒时不发送请求。 $('#search').keyup(function(){ //your code 修改为 var lastType; $('#search').keyup(function(){ var thisType = +new Date(); if( lastType && thisType - lastType < 1000 ){     lastType = thisType;     return; } lastType = thisType; //your code
    我要举报
    如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
    点此我要举报以上问答信息
    大家都在看
    推荐资讯