无法使用“ keydown”打开模式

时间:2019-07-11 09:55:09

标签: jquery html model-view-controller modal-dialog

我有一个编码的动作链接,单击该链接将打开模式弹出窗口。为了使我的应用程序可访问,我还需要能够通过按键(空格键)打开模式。单击时工作正常,但按键不起作用。请帮忙。

已编码的操作链接:

@Html.EncodedActionLink(
    "Preview", 
    "Preview", 
    "Forms", 
    new { 
        stagingId = Model.FormData.StagingNotificationId 
    },
    new { 
        @class = "'modal-link btn btn-success'", 
        id = "decSave" 
    })

适用于鼠标的点击代码:

 $(function() {
     $('body').on('click', '.modal-link', function(e) {
         e.preventDefault();
         $(this).attr('data-target', '#modal-container');
         $(this).attr('data-toggle', 'modal');
     });
 });

按键按下代码(触发警报但未打开模式):

$(function() {
    $('body').on('keydown', '.modal-link', function(e) {
        if (e.which == 32) {

            alert('test')

            e.preventDefault();
            $(this).attr('data-target', '#modal-container');
            $(this).attr('data-toggle', 'modal');
        }
    });
});

1 个答案:

答案 0 :(得分:1)

仅是因为click事件会传播并触发模式点击,而keydown则不会这样做。

尝试一下

$(function () {
    $('body').on('keydown', '.modal-link', function (e) {
        if (e.which == 32) {
            $(this).trigger("click")
        }
    });
});