2013-12-12 49 views
0

因此,我想從JQueryUI的Accordion的標題中放置一個contenteditable字段,但是,當我嘗試將事件綁定到該子對象時,綁定即使我試圖解除或阻止繼承,手風琴也是優先的。停止單擊,輸入和箭頭綁定標題的孩子

<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鍵,則只會打開/關閉它們而不是插入換行符。

任何人有任何想法嗎?

+0

嘗試http://jsfiddle.net/arunpjohny/dJbS3/3/ –

回答

1

卸下unbind()並註冊KEYDOWN處理機

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

演示:Fiddle

keypress event當一個鍵被按下時被觸發,該鍵通常產生一個字符值 - 所以像箭頭這樣的鍵不會觸發它

+0

啊,是的,這是做到了!應該考慮keydown而不是按鍵。謝謝! – Jeff

2

使用

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

你的語法不正確。

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

這裏不需要括號。

DEMO

+0

沒錯,我的地址是錯誤的,但是這種方法無效。然而,我會在我的小提琴和榜樣中糾正它。謝謝 – Jeff

+0

@Jeff,使用'return false;' – Satpal

+0

更新爲返回false,仍然沒有骰子:http://jsfiddle.net/P93E6/7/另外,按演示中的箭頭鍵仍然不會移動光標,按Enter鍵不會添加換行符(真的,如果我只能讓箭頭鍵工作,我會很高興) – Jeff