【问题标题】:Cannot open modal with 'keydown'无法使用“keydown”打开模式
【发布时间】:2019-07-11 09:55:09
【问题描述】:

我有一个编码的操作链接,点击它会打开一个模式弹出窗口。为了使我的应用程序可访问,我还需要能够通过按键(空格键)打开模式。单击上的效果很好,但按键却不行。请帮忙。

编码动作链接:

@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');
        }
    });
});

【问题讨论】:

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


    【解决方案1】:

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

    试试这个

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

    【讨论】:

    • @JohnNewbie 如果对您有帮助,我会请求您接受答案。
    猜你喜欢
    • 2015-02-08
    • 2019-07-09
    • 2018-01-21
    • 2012-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-29
    • 1970-01-01
    相关资源
    最近更新 更多