繁体   English   中英

jQuery,.focus()有麻烦

[英]Jquery, having trouble with .focus()

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

但是,它没有按计划工作。 取消注释.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()时也是如此。 但是我希望自动建议在用户输入时开始起作用。

这有效:

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

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

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

通过使用$("#channel-search-input").click();触发文本框的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();
});

尝试使用INPUT进行onkeyup事件。 在onkeyup事件函数中添加自动建议代码。 您可能需要一些检查(根据我的旧代码),例如

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM