Internet Explorer无法识别密钥处理程序

时间:2016-03-31 09:19:51

标签: javascript jquery internet-explorer

我一直在为一个客户的网站工作一段时间。该网站使用即时搜索搜索框,当用户开始在文本输入中键入字符时,使用AJAX获取搜索结果并立即显示在同一网页中。除了Internet Explorer之外,所有主流浏览器的设置都完美无缺(至少9-11,Edge似乎有所借口)。 核心代码如下:

(function($) {

   // Tracking variable for AJAX requests
   var request = null;

   function searchQuery(query){
      console.log("Search query received");
      request = $.ajax({
         method: "get",
         url: icl_home + "wp-json/query/v1/search/" + query,

         beforeSend : function(){
            if(request != null){
               // If a request exists already, cancel it
               request.abort();
            } else{
               // Set loading state to signify loading
               // This will output a spinner on the object
               $("nav .search").addClass("loading");
            }
         },

         success: function(data){
            console.log("Query returned");

            // On data get, push it to the right function
            formatResults(data);

            // Reset loading state
            $("nav .search").removeClass("loading");

            // Reset request
            request = null;

         }
      });
   }

   $("input#search").keyup(function(e){
      console.log("Trigger keyup");
      searchQuery($(this).val());   
   });

})(jQuery); // Fully reference jQuery after this point.

如您所见,意图很简单。问题是Internet Explorer似乎无法识别我们的keyup处理程序,这对于该功能的运行至关重要。我已经尝试用keydown / keypress替换处理程序,我已经尝试通过使用纯javascript注册事件来挑出jQuery,但还没有任何工作。

您对我们在哪里寻找可能存在的问题有任何建议吗?

0 个答案:

没有答案