【问题标题】:How to disable jQuery accordion open on Enter keypress?如何在 Enter 按键上禁用 jQuery 手风琴打开?
【发布时间】:2013-01-13 11:32:59
【问题描述】:

我有一个这样的 jQuery 手风琴:

<div id="accordion">
    <h3>Log Output</h3>                             
    <div id="result" class="logStyle"  />
</div>

我像这样在我的javascript中初始化它(在文档准备功能中):

$("#accordion").accordion({ 
    header: "h3", 
    collapsible: true, 
    active: false
});

我试图阻止我的一个项目在用户点击“Enter”时打开。我试过删除按键:

$("#accordion").removeAttr("keypress");

直接处理事件:

$("#accordion").bind('keypress', function(e) {
    e.stopPropagation();
}});

$("#accordion").keypress(function (evt) {
    var charCode = evt.charCode || evt.keyCode;
    if (charCode  == 13) { 
        return false;
    }
});

但无论我做什么,按 Enter 键都会打开手风琴。如何禁用此功能?

【问题讨论】:

    标签: jquery jquery-ui


    【解决方案1】:
    $('#accordion').unbind('accordion');
    

    最好使用.on().off(),因为您也可以使用此函数委托事件。 :)

    http://api.jquery.com/on/
    http://api.jquery.com/off/

    【讨论】:

    • 我不确定我是否理解开/关的东西(jQuery n00b)- 我尝试使用 unbind,但它似乎不起作用。
    • 啊,我没看到,您的按键事件应该绑定到文档。试试这个: $(document).on('keypress', function(evt) { if(evt.keyCode === 13) { $('#accordion').unbind('accordion'); } });开和关真的很容易处理。只需查看给定的示例(我在此评论的示例中也使用了 on。)
    • 我做错了什么。我将该代码准确地添加到文档就绪功能中,并且没有任何更改。我有(在文档就绪函数之外)一个 $(document).keypress(function(e)) { if (e.keyCode == '13) { // do stuff }});这很好用......我似乎无法阻止手风琴在“Enter”上打开
    • 它与其他方法有关-如果我将其注释掉,您的代码就可以工作。嗯。我需要“Enter”来处理文档,而不是手风琴。
    • 只是为了证明我是否真的得到了你想要做的事情:我又读了 3 遍你的帖子,但我不确定......你想在哪些活动中得到你的手风琴-要触发的事件?
    【解决方案2】:

    使用$("#accordion")试试$(document)

    【讨论】:

    • 我需要文档上的按键 :(
    猜你喜欢
    • 1970-01-01
    • 2011-10-20
    • 1970-01-01
    • 2022-11-19
    • 1970-01-01
    • 2022-07-25
    • 1970-01-01
    • 2022-06-27
    • 2013-02-06
    相关资源
    最近更新 更多