Ajax实时搜索无法在触摸屏手机上运行

时间:2017-09-12 08:00:45

标签: javascript jquery html css ajax

我已经在我的网站上实现了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);

        });

    });

1 个答案:

答案 0 :(得分:2)

我相信您还需要touchend事件才能使脚本支持触摸屏。

尝试使用.on()代替.keyup()的两个事件。

$('#search').on('touchend keyup', function(e) {
  ...
});

作为替代方案,您可以使用input事件代替touchend