簡體   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