我已经在我的网站上实现了ajax实时搜索。它适用于所有浏览器但是当涉及到触摸屏时它没有显示任何结果。我认为触摸事件没有被代码检测到,但即使是我的几个在网上搜索我不知道该怎么做。这是我的代码,任何帮助将不胜感激
$(document).ready(function () {
$("#search").keyup(function (e){
var inp = String.fromCharCode(e.keyCode);
if (/[a-zA-Z0-9-_ ]/.test(inp)) {
$.ajax({
url: '/search.php',
type: 'POST',
data: "keyword=" + $(this).val(),
success: function (data) {
data = $.parseJSON(data);
if (data['response'] == true) {
$("#search_results").html(data['html']).show();
} else {
alert("Please try again.");
}
}
});
}
});
function hide_search_results(e) {
var container = $("#search_results");
if (!container.is(e.target) && container.has(e.target).length === 0) {
window.displayBoxIndex = -1;
container.hide();
}
}
$(document).mouseup(function (e) {
hide_search_results(e);
});
});
答案 0 :(得分:2)
我相信您还需要touchend
事件才能使脚本支持触摸屏。
尝试使用.on()
代替.keyup()
的两个事件。
$('#search').on('touchend keyup', function(e) {
...
});
作为替代方案,您可以使用input
事件代替touchend
。