为手风琴标题的孩子停止Click,Enter和Arrow Bonds

时间:2013-12-12 16:18:29

标签: javascript jquery jquery-ui

所以我想在JQueryUI的Accordion标题中添加一个可信的字段,然而,当我尝试将一个事件绑定到该子对象时,即使我试图解除绑定或阻塞,手风琴的绑定优先。遗产。

<div class="accord">
    <div>
        <div class="theHead" >
            <span class="ignoreAccordBinds" contenteditable="true">Edit Me</span>
        </div>
        <div class="theBody">
        SomeBody
        </div>
    </div>
            ...

我希望上面的代码在跨越范围内执行任何操作时忽略所有的手风琴操作。

我已经尝试了

     $(".ignoreAccordBinds").keypress(function(e){
          e.stopPropagation();
      });
   $(".accord").find(".ignoreAccordBinds").unbind();

似乎都没有帮助。

我创建了JSFiddle我的问题。如果您尝试使用右箭头键移动其中一个标题上的光标(插入符号),则手风琴会选择另一个div。如果您尝试按Enter键,它只会打开/关闭它们而不是插入换行符。

这里有任何想法吗?

2 个答案:

答案 0 :(得分:2)

使用

$(".ignoreAccordBinds").keypress(function (e) {
    e.stopPropagation();
    return false;
});

您的语法不正确。

  $(".ignoreAccordBinds").keypress()(function(e)
                                  ^

这里不需要括号。

DEMO

答案 1 :(得分:1)

删除unbind()并注册keydown处理程序

$(".ignoreAccordBinds").keydown(function (e) {
    e.stopPropagation();
});

演示:Fiddle

当按下某个键并且该键通常会产生一个字符值时会触发keypress event - 所以像箭头这样的键不会触发它