允许输入键和单击功能都运行

时间:2015-02-12 15:47:00

标签: javascript jquery

我有这个功能:

    $(document).on('click keypress', '.pTile:not(.join)', function (e) {
        if (e.keyCode != 13) {
            return false;
        }
       //Do Stuff
    });

此代码允许用户单击div或按Enter键。但问题是,由于决策结构过滤了密钥代码,它实际上只允许输入按钮。如何允许点击和输入按钮事件通过?

1 个答案:

答案 0 :(得分:4)

jQuery事件具有type属性,您可以检查:

$(document).on('click keypress', '.pTile:not(.join)', function (e) {
    if (e.type == 'keypress' && e.keyCode != 13) {
        return false;
    }
    //Do Stuff
});

或者,您可以将逻辑提取到自己的函数并添加单独的处理程序:

function doStuff() {
    // Do stuff...
}
$(document).on('click', '.pTile:not(.join)', doStuff);
$(document).on('keypress', '.pTile:not(.join)', function() {
    if (e.keyCode == 13)
        doStuff.call(this);
});