添加“按下按钮”对 JQuery 的 keydown 有影响吗?

发布于 2024-11-25 17:44:26 字数 139 浏览 2 评论 0原文

当选择按钮并按下某个键时,如何添加“按钮按下”效果?实际媒体的行为是有效的,只是没有显示出任何效果。

更具体地说: 我有一组可以使用左右箭头键遍历的按钮。当按下 Enter 时,当前选定的按钮将执行其 onclick 行为。

谢谢!

How can I add the "button down" effect when a button is selected and a key is pressed? The behaviour of the actual press works, it's just no effect is ever shown.

To be more specific:
I have a set of buttons that can be traversed through using the left and right arrow keys. And when Enter is pressed, the currently selected button will carry-out it's onclick behaviour.

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

素食主义者 2024-12-02 17:44:26

这是一个小提琴示例: http://jsfiddle.net/maniator/DBLem/

var index = 0;
var buttons = $('button');
var max = buttons.length - 1;
var buttonOn = buttons.eq(index).addClass('on');

$(document).keydown(function(e) {
    switch (e.keyCode) {
    case 39:
        {
            index++;
            if (index > max) {
                index = 0;
            }
            break;
        }
    case 37:
        {
            index--;
            if (index < 0) {
                index = max;
            }
            break;
        }
    case 13:
        {
            buttonOn.trigger('click');
        }
    }
    buttonOn = buttons.eq(index);
    buttons.removeClass('on');
    buttonOn.addClass('on');
});


$('button').click(function(){
    alert(this.innerHTML);
});

Here is a fiddle example: http://jsfiddle.net/maniator/DBLem/

var index = 0;
var buttons = $('button');
var max = buttons.length - 1;
var buttonOn = buttons.eq(index).addClass('on');

$(document).keydown(function(e) {
    switch (e.keyCode) {
    case 39:
        {
            index++;
            if (index > max) {
                index = 0;
            }
            break;
        }
    case 37:
        {
            index--;
            if (index < 0) {
                index = max;
            }
            break;
        }
    case 13:
        {
            buttonOn.trigger('click');
        }
    }
    buttonOn = buttons.eq(index);
    buttons.removeClass('on');
    buttonOn.addClass('on');
});


$('button').click(function(){
    alert(this.innerHTML);
});
π浅易 2024-12-02 17:44:26

好吧,我会保存当前具有焦点的元素的 id,如下所示,然后在用户按 Enter 键时单击它:

var id; 

$("button").focus(function () {
     id = this.id;
});

$(window).keydown(function(e){
    var code = (e.keyCode ? e.keyCode : e.which);
    if (code === 13){
        $('#'+id).click();
    }
});

Well i'd save an id of the element which currently has focus like this and then click it when the user presses enter:

var id; 

$("button").focus(function () {
     id = this.id;
});

$(window).keydown(function(e){
    var code = (e.keyCode ? e.keyCode : e.which);
    if (code === 13){
        $('#'+id).click();
    }
});
幽蝶幻影 2024-12-02 17:44:26

试试这个

$("button").click(function(){

      $(this).animate({ marginLeft: "2px", marginTop: "2px" }, 100, function(){ 
         $(this).css({marginLeft:"0px", marginTop:"0px"});
         //On click logic goes here
      });

    }).keyup(function(e){

      if(e.which == 13){
        $(this).trigger('click');
      }
    });

Try this

$("button").click(function(){

      $(this).animate({ marginLeft: "2px", marginTop: "2px" }, 100, function(){ 
         $(this).css({marginLeft:"0px", marginTop:"0px"});
         //On click logic goes here
      });

    }).keyup(function(e){

      if(e.which == 13){
        $(this).trigger('click');
      }
    });
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文