2012-08-03 52 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; 

后焦点处理程序函数的最后一个字符串。

相关问题