【问题标题】:Jeditable and Jquery UI autocompleteJeditable 和 Jquery UI 自动完成
【发布时间】:2024-05-22 18:50:02
【问题描述】:

您好,我正在尝试将 JEditable 和 JQuery UI Autocomplete 放在一起,所以当我单击 div 时,div 变为可编辑,并且输入的内容将具有自动完成功能,我尝试了与其他帖子不同的解决方案,例如

  1. Jquery ui with Jeditable,
  2. How do you bind jQuery UI autocomplete using .on()?,
  3. Bind jQuery UI autocomplete using .live()

最后来一些代码看起来是这样的。

<div class="edit_school" id="edit_school_pending">ADD</div>

$(document).on(
    "focus", 
    ".edit_school:not(.ui-autocomplete-input)", 
    function(event) { 
         alert("Hey");
     $(this).autocomplete(
         {source: ["a","ab","aa","ac"]}
    );}
 );

JQuery 版本:jquery-1.9.1.js
jQuery UI 版本:code.jquery.com/ui/1.10.3/jquery-ui.js

当点击“添加”时,“添加”会被带入一个文本框,并显示一个警告,但键入“a”不会显示任何自动完成功能。如果结果不好,请帮助并忍受格式。非常感谢。

【问题讨论】:

    标签: jquery jquery-ui autocomplete jeditable


    【解决方案1】:

    终于弄明白了,对于那些对 JEditable/Autocomplete 也不熟悉的人,这里是工作代码:

        $(document).on(
            "focus", 
            ".edit_school", 
            function(event) { 
                alert(event.target);
                $(event.target).autocomplete(
                    {source: ["a","ab","aa","ac"]}
                );
            }
        );
    
     <div class="edit_school" id="edit_school_pending">ADD</div>
    

    由于调用了“$(this).autocomplete()”,最后一个帖子无法正常工作,这里,$(this) 指的是 div,而不是 JEditable 创建的输入。我试图为创建的输入设置一个 id,但无法做到这一点。但后来发现我可以访问输入元素本身(event.target),然后调用 inputElement.autocomplete 解决了问题。

    【讨论】: