Javascript HTML格式的输入阻碍
我正在尝试按输入执行搜索,它尝试显示数据与输入数据匹配的元素。代码如下:Javascript HTML格式的输入阻碍,javascript,jquery,html,Javascript,Jquery,Html,我正在尝试按输入执行搜索,它尝试显示数据与输入数据匹配的元素。代码如下: var webUserdataTempInput = $(".Input").val(); $(".Input").keyup(function(e){ if($(this).val()==webUserdataTempInput) return; webUserdataTempInput=$(".Input").val(); var webUserdataCurr
var webUserdataTempInput = $(".Input").val();
$(".Input").keyup(function(e){
if($(this).val()==webUserdataTempInput)
return;
webUserdataTempInput=$(".Input").val();
var webUserdataCurrentNo=0,webUserdataCurrentPrio;
for (webCount=0;webCount<$(".E").length;webCount++){
if($(".webAdminUserdataInput").val()!=webUserdataTempInput)
break;
if($(".Input").val().length==0){
$(".E").css("display","block");
return;
}
var wI = $(".Input").val().toLowerCase();
var wC = $(".E:eq("+webCount+")").attr("data-c").toLowerCase();
var wE = $(".E:eq("+webCount+")").attr("data-e").toLowerCase();
var wS = $(".E:eq("+webCount+")").attr("data-s").toLowerCase();
var wU = $(".E:eq("+webCount+")").attr("data-u").toLowerCase();
if(wC.replace(wI,"")==wC && wE.replace(wI,"")==wE && wS.replace(wI,"")==wS && wU.replace(wI,"")==wU){
$(".E:eq("+webCount+")").css("display","none");
$(".E:eq("+webCount+")").css("color","#fff");
}else{
$(".E:eq("+webCount+")").css("display","block");
$(".E:eq("+webCount+")").css("color","#ff0");
webUserdataCurrentNo++;
webUserdataCurrentPrio=webCount;
}
}
});
var webUserdataTempInput=$(“.Input”).val();
$(“.Input”).keyup(函数(e){
if($(this).val()==webUserdataTempInput)
返回;
webUserdataTempInput=$(“.Input”).val();
var webUserdataCurrentNo=0,webUserdataCurrentPrio;
对于(webCount=0;webCount我认为“.E”的多个部分正在扼杀移动环境中的应用程序。如果您可以尽可能缩小范围,或将“.E”元素列表存储在变量中,并使用:
var elist = $(".E");
.
.
$elist.find(":eq(" + webCount + ")").css({ display: "block", color: "#ff0" });
如果可能的话,尝试减少检查范围,这将有助于提高性能。因此,超时会有所帮助,但它无法解决根本问题,即DOM访问和更大的DOM树会降低移动应用程序的速度。我的解决方案一直是引入非常短的超时时间,大约是移动应用程序的五分之一第二,在任何时候发生按键事件时清除它,这样键入不会导致延迟,但一旦停止键入,它会突然更新。这听起来像是对您有用的事情吗?我可以将超时设置为十分之一秒吗?我已经做了类似的操作,但失败了,我希望尽快显示搜索结果这是可能的。请看这一点,根据您的需要调整超时。-值得注意的是,在默认情况下,在移动浏览器上增加此超时可能是一个好主意,以减少可能的延迟。您的代码成功了,因为只有一个命令!但是,在我的代码中,for循环将以某种方式执行100次以上,这使事情变得复杂低。似乎设置超时对问题没有帮助。是否有任何有用的算法可以减少检查范围?请尽可能具体。$(“td.E”);
或$(“div.E,span.E,li.E”);
比$(.E”)更快< /代码>或将父元素的集合元素打包为<代码> $[(“{ PARTENTENMYBYID”).find(“.e”),因为父元素减少了范围。或者如果可能的话,考虑文档片段()。