在div中加载php后出现Jquery Autocomplete错误:未捕获“TypeError:无法读取属性'标签'未定义”

时间:2013-12-27 10:09:31

标签: php jquery

从所选项目加载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>

无法解释原因,但现在我的自动完成工作正常,没有更多错误。

抱歉我的英文......

1 个答案:

答案 0 :(得分:0)

JQuery(或任何JS lib)需要在你使用之前加载才可以使用它,否则它会在没有jQuery的情况下被强制...在头部加载jQuery / jQuery UI而你会没事的。