Javascript ul标签中的键盘快捷键
我用PHP创建了一个Javascript ul标签中的键盘快捷键,javascript,html,Javascript,Html,我用PHP创建了一个: $WORLD_STATES = array( "France", "Germany", "Greece", "Greenland", "United Kingdom", "United States", "Uruguay" ); echo '<ul>'; for($i=0; $i<sizeof($WORLD_STATE
:
$WORLD_STATES =
array(
"France",
"Germany",
"Greece",
"Greenland",
"United Kingdom",
"United States",
"Uruguay"
);
echo '<ul>';
for($i=0; $i<sizeof($WORLD_STATES); $i++){
echo '<li rel="' . $WORLD_STATES[$i] . '">'.$WORLD_STATES[$i].'</li>';
}
echo '</ul>';
$WORLD\u STATES=
排列(
“法国”,
“德国”,
“希腊”,
“格陵兰”,
“联合王国”,
“美国”,
“乌拉圭”
);
回声“”;
对于($i=0;$i是的,您需要客户端脚本
您可以将属性添加到
a
节点,并将href
属性指向无序列表
用户仍然需要修改器,但这是标准的方法。是的,您需要客户端脚本
您可以将属性添加到a
节点,并将href
属性指向无序列表
尽管用户仍然需要修改器,但这是标准的方法。为什么不使用
元素呢
例如:
<select name="country" id="country">
<option>United States</option>
<option>United Kingdom</option>
</select>
美国
大不列颠联合王国
元素具有内置的字母数字跳转功能。您可以有一个包含所有国家/地区的下拉列表,而不是一个提交按钮
如果您正在使用列表跳转到新页面,那么您可以读取$\u POST['country']
的值,并重定向到它所适用的页面
如果您只是使用它跳转到页面上的其他位置,则在提交表单时运行一些javascript,读取select的值,然后跳转到页面上的该位置。为什么不使用
元素呢
例如:
<select name="country" id="country">
<option>United States</option>
<option>United Kingdom</option>
</select>
美国
大不列颠联合王国
元素具有内置的字母数字跳转功能。您可以有一个包含所有国家/地区的下拉列表,而不是一个提交按钮
如果您正在使用列表跳转到新页面,那么您可以读取$\u POST['country']
的值,并重定向到它所适用的页面
如果您只是使用它跳转到页面上的其他位置,则在提交表单时运行一些javascript,读取select的值,然后跳转到页面上的该位置。使用jQuery执行此操作(建议使用jQuery作为一种简单/可靠的方式来消除跨浏览器不一致),我建议在列表的开头添加一个搜索框,提供以下内容:
html:
.要使用jQuery实现这一点(jQuery被认为是消除跨浏览器不一致的一种简单/可靠的方法),我建议在列表开头添加一个搜索框,给出以下内容:
html:
.这可以在不使用jQuery更改当前布局的情况下完成。下面是一个粗略的示例:
$(document).keypress(function (event) {
var key = String.fromCharCode(event.which);
$("#Container li").each(function (index) {
var text = $(this).text();
if (text.length > 0 && text.charAt(0).toLowerCase() == key.toLowerCase())
{
$("#Container").scrollTop($(this).position().top);
break;
}
});
});
这应该将DIV滚动到打印字母的位置。这可以在不使用jQuery更改当前布局的情况下完成。下面是一个粗略的示例:
$(document).keypress(function (event) {
var key = String.fromCharCode(event.which);
$("#Container li").each(function (index) {
var text = $(this).text();
if (text.length > 0 && text.charAt(0).toLowerCase() == key.toLowerCase())
{
$("#Container").scrollTop($(this).position().top);
break;
}
});
});
这应该将DIV滚动到打印字母的位置。您需要使用客户端脚本来实现这一点,JavaScript、jQuery、Prototype、Glow、MooTools……是否可以接受?(如果可以,是哪一个?)PHP与您的问题无关。请在此处发布HTML代码(简称为几项)然后询问解决方案。@David但我如何使用javascript完成此操作?@col.Sharpnel谢谢您的编辑,:-)您不使用select元素(下拉列表)有什么原因吗,哪些浏览器本机支持键盘快捷键?您需要使用客户端脚本来实现这一点,JavaScript、jQuery、Prototype、Glow、MooTools……是否可以接受?(如果可以,哪一个?)PHP与您的问题无关。改为在此处发布HTML代码(缩短为几项)然后询问解决方案。@David但我如何使用javascript来实现这一点?@col.Sharpnel感谢您的编辑,:-)您不使用选择元素(下拉菜单)是有原因的吗?浏览器本机支持键盘快捷键?好问题,我已经构建了一个类似选择的组件(我个人的喜好)我使用了一个div+ul+输入文本+一个按钮(你可以在照片中看到)@Simo:你意识到你可以用CSS设计
和
,对吗?例如,我快速制作了一个概念证明。如果你稍微玩转一下,你可能会使你的列表看起来和你用
元素制作的一样好。@agentUntrum是的,但我在图像中显示的那一个,当你点击文本输入(只读)时,列表将以fadeIn方式显示(就像一个样式化的弹出窗口)不像选择元素。@Simo:为什么不能以同样的方式淡入
元素?@Simo:我完全支持重新发明轮子,这是一种很好的学习体验,但是如果你重新发明轮子,结果发现它比普通轮子更差,那么可以扔掉它。好问题,我已经构建了一个类似选择的组件(我个人的喜好)我使用了一个div+ul+输入文本+一个按钮(你可以在照片中看到)@Simo:你意识到你可以用CSS设计
和
,对吗?例如,我快速制作了一个概念证明。如果你稍微玩转一下,你可能会使你的列表看起来和你用
元素制作的一样好。@agentUntrum是的,但我在图像中显示的那一个,当你点击文本输入(只读)时,列表将以fadeIn方式显示(就像一个样式化的弹出窗口)不像选择元素。@Simo:你为什么不能以同样的方式淡入
元素?@Simo:我完全赞成重新发明轮子,这是一种很好的学习体验,但如果你重新发明了轮子,结果发现它比普通的轮子更糟糕,那就扔掉它吧。