Jquery,遇到.focus()问题

时间:2017-11-01 06:07:47

标签: jquery materialize

我正致力于获取自动填充库,以便在搜索字段中显示用户类型的建议。

然而,它并没有按计划运作。当.js上的.focus()第6行被取消注释时,它会聚焦到输入字段,但是仍然需要额外点击以使自动提示开始工作。

当您查看代码时,可以更好地描述:https://jsfiddle.net/pu7draz2/6/

$("#nav-search-button").click(function(e) {
e.preventDefault();
$("#nav-main-contents").hide();
$("#nav-search").show(1000);
//$("#channel-search-input").focus(); // <-- uncomment me
});
$('#channel-search-input').focusout(function() {
$("#nav-search").hide();
$("#nav-main-contents").fadeIn(800);
$("#channel-search-input").

使用注释.focus(),您必须手动点击两次搜索框,以便自动建议可以正常工作,并且在启用.focus()时也是如此。但我希望自动建议能够以用户类型开始工作。

4 个答案:

答案 0 :(得分:1)

这有效:

$("#nav-search-button").click(function(e) {
    e.preventDefault();
    $("#nav-main-contents").hide();
    $("#nav-search").show(1000, function(){
        $("#channel-search-input").trigger('click').focus();
    });    
});

答案 1 :(得分:0)

尝试使用以下代码而不是$(“#channel-search-input”)。focus();

  $( "#channel-search-input" ).keydown(function() {
  alert( "key down !!!" );

答案 2 :(得分:0)

在焦点后使用click触发文本框的$("#channel-search-input").click();事件,如下所示。

$("#nav-search-button").click(function(e) {
   e.preventDefault();
   $("#nav-main-contents").hide();
   $("#nav-search").show(1000);
   $("#channel-search-input").focus();
   $("#channel-search-input").click();
});

答案 3 :(得分:0)

使用INPUT尝试onkeyup事件。在onkeyup事件函数中添加自动提示的代码。您可能需要检查(来自我的旧代码),如

function onkeyupfn(e) {
    var key = window.event ? e.keyCode : e.which;

    if (key == 40 || key == 38) {
        scrolldiv(key);
    }
    else {
        autosuggestion();
    }
}