自定义jQuery插件在IE8中不起作用

时间:2014-01-16 19:54:19

标签: jquery internet-explorer jquery-plugins

我已将以下内容编写为插件,因此我可以在我的网站上的多个区域中使用它。这是一个自动完成功能,当您在文本输入中键入前几个字母时,会显示数据库中所有名称的下拉列表。

不幸的是,尽管它在Chrome,Firefox和IE9 +中运行良好,但它似乎在IE8或更低版本中无效。我正在使用Chrome IE模拟器进行测试,当我开始在盒子里打字时,绝对没有任何反应。

我已尝试在alert行之后立即添加$.fn.customAutocomplete = function() {。在Firefox中,这会导致alert在页面加载后立即显示。在IE8中它什么都不做 - 这告诉我,IE8不包括页面加载的插件,但我不知道为什么!任何帮助将不胜感激 - 完整代码如下:

编辑:为了记录,我使用jQuery 1.8.3,如果这有任何区别。

(function($){
$.fn.customAutocomplete = function() {

    return this.each(function(){
      var obj = $(this);


      obj.on('input', function(){

       var autoName = obj.val();
       var autoLength = autoName.length;
       var url = 'http://xenonacademy.org.uk/autoComplete.php';
       //console.log(autoLength);
         //$('.autoNameEntry').remove();
         $('.autoNameDiv').remove();
         if (autoLength != 0){
         $.ajax({
           url: url,
           type: "POST",
           data: {autoName : autoName},
           success: function(data){
           obj.parent().append(data);

           }
        });
        }
        else {
        //$('.autoNameEntry').remove();
         $('.autoNameDiv').remove();
        }
      })
      $(document).on('click', '.autoNameEntry', function(){
       event.stopPropagation();
       var getName = $(this).find('.autoName').html();
       var getUserID = $(this).find('.userID').val();
       obj.parent().find('.hiddenUserID').val(getUserID);
       obj.parent().find('.hiddenUserID').trigger('change');
       obj.val(getName);
       //obj.trigger('change');
       $('.autoNameDiv').remove();
      });
    });

  };
})(jQuery);

0 个答案:

没有答案
相关问题