.keyup jquery在Iphone上不起作用

.keyup jquery not working on Iphone

本文关键字:不起作用 Iphone jquery keyup      更新时间:2023-09-26

我有点初学者,但我有一个代码网页,它向我的服务器发出post请求,并用关联数组的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在Iphones上不起作用,因为必须以不同的方式处理输入元素。

有没有比我更了解的人知道更好的解决方案或解决方法?

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

https://developer.mozilla.org/en-US/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);
        }
    });
}