jquery ui自动完成打开事件未触发

jquery ui自动完成打开事件未触发,jquery,jquery-ui,jquery-ui-autocomplete,Jquery,Jquery Ui,Jquery Ui Autocomplete,我正在使用jQueryUI自动完成插件 一切都很好,但我想在最后添加一个框,说“查找更多结果” 我试图使用内置的open事件将框追加到已打开的中,但该事件从未触发(自动完成列表打开且功能齐全,唯一的问题是open事件从未触发。) 我的代码如下所示: $( "#q" ).autocomplete({ source: function(request, response) { var results = $.ui.autocom

我正在使用jQueryUI自动完成插件

一切都很好,但我想在最后添加一个框,说“查找更多结果”

我试图使用内置的
open
事件将框追加到已打开的
中,但该事件从未触发(自动完成列表打开且功能齐全,唯一的问题是open事件从未触发。)

我的代码如下所示:

        $( "#q" ).autocomplete({
            source: function(request, response) {
                var results = $.ui.autocomplete.filter(userFriends, request.term);
                response(results.slice(0, 4));
            },
            minLength: 2,
            appendTo: '.searchbox',
            select: function (event, ui){
                window.location.href = '/u/'+ ui.item.value;
                return false;
            },
            focus: function (event, ui) {
                return false;
            },
            open: function (event, ui){
                console.log("AutoComplete Opened");
            }
        })

        .data('autocomplete')._renderItem = function(ul, item) {
            return $('<li>')
                .data('item.autocomplete', item)
                .append(
                '<a>' +
                    '<div>' +
                    '<div><img src="' + item.img + '" alt="" width="50" onerror="onErrorFixProfileImage(this)"/></div>' +
                    '<div>' + item.label + '</div>' +
                    '</div>' +
                    '</a>'
            )
            .appendTo(ul);
        };
$(“#q”).自动完成({
来源:功能(请求、响应){
var results=$.ui.autocomplete.filter(userFriends、request.term);
反应(结果切片(0,4));
},
最小长度:2,
附录:'.searchbox',
选择:功能(事件、用户界面){
window.location.href='/u/'+ui.item.value;
返回false;
},
焦点:功能(事件、用户界面){
返回false;
},
打开:功能(事件、用户界面){
console.log(“自动完成打开”);
}
})
.data('autocomplete')。\u renderItem=功能(ul,项目){
返回$(“
  • ”) .data('item.autocomplete',item) .附加( '' + '' + '' + ''+项目.标签+''+ '' + '' ) .附录(ul); };
  • 是否有人知道此事件不会触发的原因


    谢谢

    作为测试,您是否尝试过在插件初始化之外绑定事件?例如:

    $( "#q" ).on( "autocompleteopen", function( event, ui ) {
        console.log("AutoComplete Opened");
    } );
    
    编辑 您可以尝试在其他事件中防止默认值,而不是返回false:

    select: function (event, ui){
        window.location.href = '/u/'+ ui.item.value;
        event.preventDefault();
    },
    focus: function (event, ui) {
        event.preventDefault();
    },
    

    我已经测试了一个简化的自动完成添加您的
    open
    方法。它工作正常,并且消息在控制台中正确写入:

    (function(){
        var aTags = ['java', 'javascript', 'actionscript', 'typescript', 'jscript', 'vbscript'];
        $('#tags').autocomplete({
            delay: 50
            , source:aTags
            , select: function(event, data){
                var $p = $('<p></p>').html(data.item.value).css({'display': 'inline-block', 'background-color': '#a0a0a0', 'color': '#ff0000'});
                $(event.target).after($p);
            }
            , open: function (event, ui){
                console.log("AutoComplete Opened");
            }
        });
    })()​
    
    (函数(){
    var aTags=['java','javascript','actionscript','typescript','jscript','vbscript'];
    $(“#标记”)。自动完成({
    延误:50
    ,资料来源:aTags
    ,选择:功能(事件、数据){
    var$p=$('

    ').html(data.item.value).css({'display':'inline block','background color':'a0a0a0','color':'ff0000'); $(event.target).after($p); } ,打开:函数(事件,用户界面){ console.log(“自动完成打开”); } }); })()​
    .

    最新更新, 我安装了一个名为jquery.dimensions的插件,它导致jquery ui方法出现许多问题。
    删除它解决了问题

    您是否尝试过在打开的事件中使用警报是的,我尝试过使用警报、日志和jquery。它就是不着火,对我来说它着火了是的,它在其他地方也对我有用。但在这种情况下,什么也没有发生。它可能与其他东西有关,我只是不知道该找什么…看这个,我用了你的代码的最低版本,刚刚试过。。。什么都没有发生,我甚至没有收到错误,只是没有回应。我知道需要帮助,我替换了我的回报,但仍然没有回应。我检查了所有其他事件,它们都正常工作。只有公开赛是死的。我想我在我的网站的其他地方有东西阻止它。也许你知道它可能是什么??现在我在控制台中遇到了以下错误:“未捕获的TypeError:无法读取未定义的”的属性“defaultView”是否相关?在jquery.js中:if(document.defaultView&&document.defaultView.getComputedStyle){getComputedStyle=function(elem,name){var ret,defaultView,computedStyle,width,style=elem.style;name=name.replace(rupper,“-$1”).toLowerCase();if((defaultView=elem.ownerDocument.defaultView)和未捕获类型错误:无法读取未定义(computedStyle=defaultView.getComputedStyle(elem,null))的属性“defaultView”){ret=computedStyle.getPropertyValue(name);谢谢,我知道它可以工作,但出于某种原因,我的不…你知道有什么可以覆盖它的吗?