2014-03-01 68 views
0

我有一個可編輯的div:失去了重點ContentEditable DIV?

<div id="editor" contentEditable="true"> Enter your text here.. </div> 

我想,當我選擇在下拉組件的一些元素來改變字體爲可編輯的div選定的文本,但每次我在下拉單擊一個項目組件,我放鬆了可編輯的div。

我已經搜索了這個問題,但是我找不到任何可以理解的東西。

在這篇文章:dont-lose-focus-when-clicking-another-element,我發現這個代碼:

protect: function (e) { 
     e.preventDefault() 
     return setTimeout(300) 
    } 

但我不知道如何將它添加到我的代碼。

如果有人可以幫我解決這個問題,我會很樂觀。

回答

0

基本上你只需要

  1. 停止從鼠標按下了那個小保護功能的情況下,你有
  2. 但仍然處理您的點擊事件。

    heres the example, focus on the input first than you click hi 
    
    var protect = function (e) { 
        e.preventDefault() 
        return setTimeout(300) 
    } 
    
    var handleClick = function(){ 
        alert('hi') 
    } 
    
    $('div') 
        .on('mousedown', protect) 
        .on('click', handleClick) 
    }) 
    

這是怎麼你做假設你正在使用jQuery http://jsfiddle.net/yF6Gg/

+0

什麼是$( '格')?那是什麼handleClick? –

+1

你看過jsfiddle上的演示嗎?那個div就是你想要點擊的任何東西,例如你的菜單或菜單按鈕。並點擊只是一個功能,你可以分配你想要做什麼,當你點擊。 – devric