2
私はウェブサイトでajaxライブ検索を実装しました。すべてのブラウザで機能しますが、タッチスクリーンに関しては結果は表示されません。タッチイベントは検出されていないと思いますコードによってそれでも、私のいくつかは、ネット上で検索すると、私はdo.Hereに私のコードであり、任意のヘルプは、私はあなたにもタッチをサポートしているあなたのスクリプトを作るためにtouchend
イベントが必要であることを信じて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