2015-04-28 2 views
-1

Это мой код ... Может ли кто-нибудь мне помочь?Невозможно установить свойство '_renderItem' of undefined

$ (документ) .ready (функция() {

//$('#search input[name="filter_name"]').attr("x-webkit-speech", "x-webkit-speech") 
$('#search input[name="input-search-menu"]').autocomplete({ 
    source: function(request, response) { 
     $.ajax({ 
      url: 'index.php?route=module/search_suggestion/ajax', 
      dataType: 'json', 
      data: { 
       keyword: request.term 
      }, 
      success: function(json) { 
       response($.map(json, function(item) { 
        return { 
         fields: item.fields, 
         value: item.href 
        } 
       })); 
      } 
     }); 
    }, 
    minLength: 1, 
    select: function(event, ui) { 
     if (ui.item.value == "") { 
      return false; 
     } else { 
      location.href = ui.item.value; 
      return fse; 
     } 
    }, 
    open: function() { 
     $(this).removeClass("ui-corner-all").addClass("ui-corner-top"); 
    }, 
    close: function() { 
     $(this).removeClass("ui-corner-top").addClass("ui-corner-all"); 
    }, 
    focus: function(event, ui) { 
     $('#search input[name="filter_name"]').val(ui.item.label); 
     return false; 
    } 
}).data("ui-autocomplete")._renderItem = function(ul, item) { 

    var elements = []; 
    $.each(item.fields, function(field_name, field) { 
     if (field != undefined && field[field_name] != undefined && field[field_name]) { 

     var field_html = '';    
     if (field_name == 'price') { 
      if (field.special) { 
      field_html = '<span class="price-old">' + field.price + '</span><span class="price-new">' + field.special + '</span>'; 
      } else { 
      field_html = field.price; 
      } 
     } else { 
      field_html = field[field_name]; 
     } 

     if (field.label != undefined && field.label.show != undefined && field.label.show) { 
      field_html = '<span class="label">' + field.label.label + '</span>' + field_html; 
     } 
     if (field.location != undefined && field.location == 'inline') { 
      field_html = '<span class="' + field_name + '">' + field_html + '</span>'; 
     } else { 
      field_html = '<div class="' + field_name + '">' + field_html + '</div>'; 
     } 

     elements.push({sort: field.sort, html: field_html}); 
     } 
    }); 

    // sort 
    elements.sort(function(a, b){return a.sort-b.sort}); 

    // implode 
    var elements_html = ''; 
    $.each(elements, function(index, element) { 
     if (element != undefined) { 
     elements_html = elements_html + element.html; 
     } 
    });  

    return $("<li></li>") 
     .data("item.autocomplete", item) 
     .append('<a class="search-suggestion">' + elements_html + '</a>') 
     .appendTo(ul); 
}; 

});

`Я получаю не могу установить свойство _render_item 'в моем js-файле. Это остановило работу моего js-файла. Может ли кто-нибудь помочь мне с моим кодом?

Заранее спасибо

+0

Показать код JS – Tushar

+0

где ваш код? – colecmc

+0

Где вы устанавливаете свойство _render_item? – Lewis

ответ

1

Некоторые соглашения об именах, связанных с автозаполнения были устаревшими в JQuery UI в v1.9 и были полностью удалены в v1.10 (см http://jqueryui.com/upgrade-guide/1.10/#autocomplete).

Вы можете проверить его на Cannot set property '_renderItem' of undefined jQuery UI autocomplete with HTML, потому что он объясняет это очень хорошо. :)

Смежные вопросы