2
我在我的网站上实现了ajax实时搜索。它适用于所有浏览器,但是对于触摸屏,它不显示任何结果。我认为触摸事件未被检测到由代码,但即使在我的几个净搜索我不知道该怎么do.Here是我的代码和任何帮助,将不胜感激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);
});
});
非常感谢它已经开始工作,但现在的问题是这条线var inp = String.fromCharCode(e.keyCode)。它没有从触摸屏获取确切的输入。你能帮我解决这个问题吗? – zish
对,也可能有问题,因为'e.keyCode'是'keydown/keyup'事件的一个属性,并且不会与其他事件一起工作。是否有必要以这种方式获得输入的文本?也许,'$(this).val()'也许很好?或者还有其他一些需要使用'String.fromCharCode(e.keyCode)'? – voloshin
非常感谢您的时间。没有具体的理由使用String.fromCharCode(e.keyCode)所以我已经改变它$(this).val()现在,一切工作正常。 – zish