2012-08-03 51 views
0

工作,我有以下的代碼,增加了鍵盤輔助的下拉。jQuery的重點工作不格式的文件,但是從控制檯

$(document).ready(function() 
{ 
    $(".selectButton").focus(function() { 
     alert("Working"); 
     var href=this.href; 
     var opt=href.substr(23,1); 
     var torf=href.substring(25); 
     showOptions(opt,false);           
     $(".optionsDivVisible a:first").focus(); 
    }).blur(function() { 
     $(this).parents("li").removeClass("hover"); 
    }); 
}); 

這是從控制檯工作,下拉顯示只要元素獲得焦點。但是當我將它添加到HTML文件時,它什麼也沒有顯示。

+0

究竟「不工作」?焦點回調是否被調用或調用'$(「。optionsDivVisible a:first」)。focus()'沒有任何作用?如果你創建一個http://jsfiddle.net/ demo,我們可以更容易地幫助你。 – 2012-08-03 12:36:00

+0

焦點回調沒有被調用,它甚至沒有顯示警報。但在控制檯中完美工作。實際上,我無法複製它,因爲這是使用另一個庫將常規選擇框轉換爲ul列表。 – 2012-08-03 12:43:12

+0

好吧,看來在這裏工作:http://jsfiddle.net/ha3YP/。因此,如果沒有更多信息(例如實際的DOM結構),我不知道我們是否可以提供更多幫助。 – 2012-08-03 12:48:31

回答

1

如果你使用其他庫從一個選擇框加載這個名單,也許在DOM選擇框標記,而不是列表的實例。這就是爲什麼你可以在腳本運行後在控制檯中運行你的代碼。

試着這麼做$(".selectButton").live('focus', function() { ...

乾杯!

+0

感謝盧克,工作... :) – 2012-08-03 13:03:28

+0

現在多了一個疑問。從下拉菜單(選擇框)中選擇一個元素後,如何將焦點移動到窗體中的下一個元素..? – 2012-08-03 13:13:55

+0

您沒有提供足夠的代碼來確定這一點。抱歉。如果你自己無法弄清楚,你可以在stackoverflow上打開另一張票。 – Luke 2012-08-03 13:44:30

0

問題都不可能在給定的焦點的順序。嘗試添加

return false; 

後焦點處理程序函數的最後一個字符串。

相關問題