使用Javascript和/或CSS是否可以让用户单击某个元素?
我正在制作一个由箭头键控制的游戏。你可以看到 我注意到的一个用户体验问题是,如果用户单击“设置速度”按钮来更改蛇的速度,那么当他们尝试使用箭头键向上或向下移动蛇时,因为他们仍然在“设置速度”单选按钮框中单击,所以所做的只是通过单选按钮切换。如果可能的话,我希望一旦他们点击一个“设置速度”按钮,他们就会被点击出框,这样他们的箭头键就能控制蛇的移动。“设置速度”框的事件侦听器为使用Javascript和/或CSS是否可以让用户单击某个元素?,javascript,jquery,html,css,user-experience,Javascript,Jquery,Html,Css,User Experience,我正在制作一个由箭头键控制的游戏。你可以看到 我注意到的一个用户体验问题是,如果用户单击“设置速度”按钮来更改蛇的速度,那么当他们尝试使用箭头键向上或向下移动蛇时,因为他们仍然在“设置速度”单选按钮框中单击,所以所做的只是通过单选按钮切换。如果可能的话,我希望一旦他们点击一个“设置速度”按钮,他们就会被点击出框,这样他们的箭头键就能控制蛇的移动。“设置速度”框的事件侦听器为 我想知道是否有一行或两行我可以添加来点击#speed form中的用户。首先,你的问题与HTML的关系比JavaScrip
我想知道是否有一行或两行我可以添加来点击
#speed form
中的用户。首先,你的问题与HTML的关系比JavaScript或任何东西都重要。在HTMLlabel
element中,展开复选框的单击区域
或单选按钮
您的HTML如下所示
<tr>
<td>
<input type="radio" name="speed" value="slow">
</td>
<td align="left">Slow</td>
</tr>
首先,你的问题与HTML有关,而不是与JavaScript或任何东西有关。在HTML
label
element中,展开复选框的单击区域
或单选按钮
您的HTML如下所示
<tr>
<td>
<input type="radio" name="speed" value="slow">
</td>
<td align="left">Slow</td>
</tr>
尝试在单击发生时捕获事件,访问目标元素(输入单选按钮),并调用元素的blur()方法:
借助以下帮助:尝试在单击发生时捕获事件,访问目标元素(输入单选按钮),并调用元素的blur()方法:
在以下人员的帮助下:编辑:看起来我的反应有点慢,几乎和另一个一样。我会留下这个消息,因为我不能对它发表评论。我将用斜体字表示唯一的区别 这将从radiobutton上移除焦点。如果这不起作用,您可能必须将焦点设置在包含游戏的对象上
编辑:看起来我的反应有点慢,和另一个差不多。我会留下这个消息,因为我不能对它发表评论。我将用斜体字表示唯一的区别 这将从radiobutton上移除焦点。如果这不起作用,您可能必须将焦点设置在包含游戏的对象上
Knuth博士,如果你能发布相关的HTML代码,那会有很大帮助。你有没有尝试过
blur()
?我想你想要的是otherelement.focus()
(比如:snakegame.focus()
或其他什么东西,但是如果没有真正的HTML,这很难说)让它重新获得焦点。我知道它可以在窗口上运行,但我没有在元素上尝试过。如果你能发布相关的HTML代码,那会有很大帮助,Knuth博士。你有没有尝试过blur()
?我想你想要的是otherelement.focus()
(比如:snakegame.focus()
或其他什么,但是没有真正的HTML很难说)让它重新聚焦。我知道它可以在窗口上工作,但我还没有在元素上尝试过。这可能很方便,但我认为它不能解决OP的单选按钮对焦问题。@Fievelyatsen是的,你是对的。我将所需的JavaScript编辑添加到我的答案中。这可能很方便,但我认为它无法解决OP单选按钮聚焦的问题。@FievelYaltsen是的,你是对的。我在回答中添加了所需的JavaScript编辑。我更喜欢你的语法。它更干净。:-)我更喜欢你的语法。它更干净。:-)
<tr>
<td>
<input type="radio" name="speed" value="slow" id="Slow">
</td>
<td align="left"><label for="Slow">Slow</label></td>
</tr>
$('#speed-form input[type="radio"]').change( function () {
if ( $(this).prop("checked") )
SG.setSpeed( $(this).val() );
});
$('#speed-form input[type="radio"]').click(function (event)
{
$(event.target).blur()
SG.setSpeed($(this).val());
});
$('#speed-form input[type="radio"]').click(function ( )
{
SG.setSpeed($(this).val());
$(this).blur();
});