Поэтому я хотел бы поместить контентное поле в заголовок Аккордеона из JQueryUI, однако, когда я пытаюсь связать событие с этим субобъектом, привязки аккордеона имеют приоритет, даже когда я пытаюсь развязать или заблокировать наследование.
<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. Если вы попытаетесь нажать клавишу ввода, она откроет/закрывает их вместо того, чтобы вставлять разрыв строки.
У кого-нибудь есть идеи?
Удалите unbind()
и зарегистрируйте обработчик keydown
$(".ignoreAccordBinds").keydown(function (e) {
e.stopPropagation();
});
Демо: скрипка
Событие нажатия клавиши запускается, когда клавиша нажата, и эта клавиша обычно генерирует значение символа - поэтому клавиши, подобные стрелке, не срабатывают
использование
$(".ignoreAccordBinds").keypress(function (e) {
e.stopPropagation();
return false;
});
Ваш синтаксис неверен.
$(".ignoreAccordBinds").keypress()(function(e)
^
Здесь вам не нужны скобки.
return false;