2

我正在使用 jquery 1.4.4 和 jquery-ui 1.8.24。我有一个对话框,在该对话框内有一个链接。单击该链接后,我向用户显示带有自动完成功能的输入。当用户从自动完成列表中选择一个项目并按回车键时,一切正常。不幸的是,当用户手动单击自动完成列表中的项目时,根本不会调用事件“选择”并且对话框会立即自行关闭。

另外,我使用了很多 live() 和 die() 来防止将多个事件绑定到我的 DOM 元素。

$j("#" + id + "_selector:not(.ui-autocomplete-input)").die().live("focus", function (event) {

        $j(this).autocomplete({
            autoFocus:true,
            html:true,
            create:function() {
               // this always invokes
               console.log('autocomplete created');
            },
            source:function (request, response) {
                var term = request.term;
                if (term in cache) {
                    response(cache[term]);
                    return;
                }

                request.kind = settings.kind
                request.no_email_display = settings.no_email_display

                lastXhr = $j.getJSON(Routes.search_account_path().url, request, function (data, status, xhr) {
                    cache[ term ] = data;
                    if (xhr === lastXhr) {
                        response(data);
                    }
                });
                return false;
            },
            select: function(event, ui) {
                    // this one works only after selecting by keyboard and hitting entery key
                    var origEvent = event;
                    while (origEvent.originalEvent !== undefined)
                        origEvent = origEvent.originalEvent;
                    console.log(origEvent);                        
                },

        });
    }); 

我怀疑是对话框以某种方式从我的自动完成中接管了点击事件。

如果有人能帮助我至少调试这个错误(工具?如何设置萤火虫、断点等?),我会很高兴,因为我意识到这个错误可能几乎不可能重现。

4

0 回答 0