繁体   English   中英

.keyup jQuery无法在iPhone上运行

[英].keyup jquery not working on Iphone

我是一个初学者,但是我有一个代码网页,该网页向我的服务器发出发布请求,并使用关联数组的JSON编码数组进行回复。

接下来,我使用文本输入字段,并在.keyup上将代码与数组配合使用,作为一种搜索功能。

$( function() {
$('#questionSearchInput').keyup(function(){
    var list = [];
    search = $(this).val().toString();
    searchArray = search.split(" ");
    console.log(searchArray);
    $.each(grabbedItems, function(j, question){
        question.score = 0;
        console.log(question.score);
    });
    if(searchArray[0]){
        $.each(grabbedItems, function(i, question){
            lowerName = question.name.toLowerCase();
            if(lowerName.indexOf(searchArray[0]) > -1){
                question.score = question.score + 1;
                console.log(question.score);
            }
        });
    }

它会对搜索数组中的每个元素多次运行if(searchArray [1])部分,然后动态加载到页面上。

        grabbedItems.sort(function(a, b){
        return b.score - a.score;
    });
    if(grabbedItems.length < 1){
        document.getElementById("noQuestionsP").style.display = "block";
    }
    clearBox("questionNamesDisplay");
    $.each(grabbedItems, function(k, question){
        if(k < 5){
            var place = document.getElementById("questionNamesDisplay");
            var item = document.createElement("a");
            item.innerHTML = question.name;
            item.href = question.link;
            item.style.display = "block";
            place.appendChild(item);
        }
    });
});

});

我的意思是.keyup在Iphone上不起作用,因为必须以不同的方式处理输入元素。

有谁比我更多的知识知道更好的解决方案或解决此问题的方法?

当从设备上移除触摸点时,将触发touchend事件。

https://developer.mozilla.org/zh-CN/docs/Web/Events/touchend

您可以将keyuptouchend事件传递到.on() jQuery方法(而不是keyup()方法)中,以在这两个事件上触发代码。

$('#questionSearchInput').on('keyup touchend', function(){
var list = [];
search = $(this).val().toString();
searchArray = search.split(" ");
console.log(searchArray);
$.each(grabbedItems, function(j, question){
    question.score = 0;
    console.log(question.score);
});
if(searchArray[0]){
    $.each(grabbedItems, function(i, question){
        lowerName = question.name.toLowerCase();
        if(lowerName.indexOf(searchArray[0]) > -1){
            question.score = question.score + 1;
            console.log(question.score);
        }
    });
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM