从所选项目加载php后,我的自动完成获取错误。
我想创建自动完成,然后根据选择加载php文件,但是在页面加载后,再次键入一些字符串,但得到了一些结果。甚至只是将其悬停或选择它给出错误的项目,从我的chrome控制台显示。 我也尝试将_renderItemData更改为_renderItem,但没有区别。
$('#mainsearch').autocomplete({
minLength: 0,
source: studentArray,
focus: function( event, ui ) {
$( "#mainsearch" ).val( ui.item.label );
return false;
},
select: function( event, ui ) {
$( "#mainsearch" ).val( ui.item.label );
$( "#mainsearch-id" ).val( ui.item.value );
$( "#mainsearch-description" ).html( ui.item.label );
$( "#mainsearch-icon" ).attr( "src", "images/" + ui.item.icon );
showitem(ui.item.label);
return false;
}
}).data( "ui-autocomplete" )._renderItemData = function( ul, item ) {
return $( "<li>" )
.data( "ui-autocomplete-item", item )
.append( "MY CUSTOM STYLE" )
.appendTo(ul);
}; // END OF AUTOCOMPLETE
和我的加载页面代码:
function showitem(selectedentity){
$("#resultbox").html(" <div id='closeresult' name='closeresult' >X </div>" +
"<div ><h1>"+
selectedentity+
"</h1></div> ");
$("#resultbox").load('browseFrame.php');
}; // END OF showitem().
错误:
Uncaught TypeError: Cannot read property 'label' of undefined search2.php:124
$.autocomplete.focus search2.php:124
$.Widget._trigger 12437:785
_on.menufocus 12437:6849
handlerProxy 12437:702
jQuery.event.dispatch 12436:3074
elemData.handle 12436:2750
jQuery.event.trigger 12436:2986
(anonymous function) 12436:3677
jQuery.extend.each 12436:648
jQuery.fn.jQuery.each 12436:270
jQuery.fn.extend.trigger 12436:3676
$.Widget._trigger 12437:783
$.widget.focus 12437:11795
(anonymous function) 12437:401
_on.mouseenter .ui-menu-item 12437:11505
handlerProxy 12437:702
jQuery.event.special.(anonymous function).handle 12436:3431
jQuery.event.dispatch 36:3074
elemData.handle
更新: 尝试从我加载的php文件中删除所有javascript声明,如下所示:
<link rel="stylesheet" href="js/jquery-ui.css">
<script type="text/javascript" src="js/jquery-2.0.2.js"></script>
<script type="text/javascript" src="js/jquery-2.0.2.min.js"></script>
<script type="text/javascript" src="js/jquery-1.9.1.js"></script>
<script src="js/jquery.ui.core.js"></script>
<script src="js/jquery-ui.js"></script>
无法解释原因,但现在我的自动完成工作正常,没有更多错误。
抱歉我的英文......
答案 0 :(得分:0)
JQuery(或任何JS lib)需要在你使用之前加载才可以使用它,否则它会在没有jQuery的情况下被强制...在头部加载jQuery / jQuery UI而你会没事的。