2015-09-17 55 views
2

我正在嘗試編輯summernote html70編輯器的插件在頁面加載過程中產生false,但它不會影響。SummerNote內容可編輯屬性製作假

這裏我的JS代碼:

<script> 
    $(function(){ 
    $('div#son_durum').children('.note-editor') 
         .children('.note-editing-area') 
         .children('.note-editable') 
         .attr('contenteditable',false); 
    }); 
</script> 

我能做些什麼實現這一目標?

感謝

回答

0

你爲什麼要嘗試設置contenteditablefalse?當您的頁面正在加載時,請不要在div#son_durum上發起summernote。

或者,你想切換summernote的啓用/禁用狀態嗎?已經有類似的問題報道。請參閱https://github.com/summernote/summernote/issues/1109

0

使用v0.8.2。
這是我的解決方案,儘管它並不完美,特別是如果開發人員更改了html和/或類名稱,但它適用於我所需要的。

我的MVC應用程序有許多summernote控件被動態添加到頁面中,並且每個控件都有一個分配給它的ID。某些控件僅顯示圖像(上傳)按鈕,而其他控件只顯示文本樣式按鈕。對於我的僅限圖像的summernote控件,我不希望用戶有能力輸入文本,所以我必須僅禁用文本輸入/圖像面板,而不是整個控件。這樣我仍然可以使用按鈕。

這是我的解決方案,這個工程!確保在summernote控件初始化後觸發。

var container = $('#summernote2').nextAll('div.note-editor:first').find('.panel-body');   
      if ($(container).length)   
      {    
       $(container).prop('contenteditable', 'false');         
      }   

發生了什麼事?

  1. 在我的具體summernote控制(ID = summernote2),我立刻在它下面找到第一個div與特定類別(「筆記編輯器」)。當控件初始化時,所有這些都會動態添加到頁面中。看到下面的圖片:summernote HTML image
  2. 然後,使用FIND,繼續尋找類'panel-body',這是文本實際放置的位置,在上圖中突出顯示。
  3. 假設我找到它,那麼我將屬性屬性更改爲false。 BAM!

可能有更多的鏈接可以完成,也許更有效的方法,但這個工作非常整齊。

爲什麼這樣? 因爲我在頁面上有多個控件,沒有什麼東西將我的ID'd summernote DIV直接鏈接到作爲初始化部分創建的所有其他DIV,我認爲這是一個很好的解決方案。否則,我怎麼能保證獲得正確的面板體類?

祝你好運,讓我知道你的想法!如果這足以回答您的問題,請記住檢查答案!

在一個完美的世界裏,你會認爲開發者會讓它變得更容易。這應該所需的一切,但沒有它不工作...:

$('#summernote2').summernote('contenteditable','false');