TypeError:blur不是函数

问题描述 投票:0回答:1

在我的JQuery UI自动完成功能中,我在选择时使用.blur()来关闭IOS键盘:

// Purpose: Instantiate Autocomplete
    function autocomplete() {
        searchInput.autocomplete({
            source: autocompleteCourts,
            minLength: 3,
            select: function (event, ui) {
                location.hash = "trigger-header";
                isEFile(event, ui);

                // Close keyboard on IOS when an option is selected
                ui.blur();
            }, open: function (event, ui) {
                $("li.ui-menu-item:odd").addClass("ui-menu-item-alternate");
                $(".ui-menu-item-alternate").css("background-color", "#f2f4f7");
                $("ul.ui-menu").addClass("mt-2 w-auto");
                $("ul.ui-menu").css("z-index", 0);
            }
        });

浏览器抛出错误Uncaught TypeError: ui.blur is not a function

在调用函数之前,我应该检查函数blur()是否存在吗?

javascript jquery jquery-ui blur
1个回答
2
投票

ui是附加autoComplete的DOM元素,而不是jQuery对象。你需要调用jQuery()才能调用像.blur()这样的方法。所以改变

ui.blur();

$(ui).blur();

这在jQuery中非常常见 - 回调通常接收DOM元素而不是jQuery包装器对象。例如。当你使用.each()时,回调函数的第二个参数是DOM元素。

© www.soinside.com 2019 - 2024. All rights reserved.