使用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');
}
發生了什麼事?
- 在我的具體summernote控制(ID = summernote2),我立刻在它下面找到第一個div與特定類別(「筆記編輯器」)。當控件初始化時,所有這些都會動態添加到頁面中。看到下面的圖片:
- 然後,使用FIND,繼續尋找類'panel-body',這是文本實際放置的位置,在上圖中突出顯示。
- 假設我找到它,那麼我將屬性屬性更改爲false。 BAM!
可能有更多的鏈接可以完成,也許更有效的方法,但這個工作非常整齊。
爲什麼這樣? 因爲我在頁面上有多個控件,沒有什麼東西將我的ID'd summernote DIV直接鏈接到作爲初始化部分創建的所有其他DIV,我認爲這是一個很好的解決方案。否則,我怎麼能保證獲得正確的面板體類?
祝你好運,讓我知道你的想法!如果這足以回答您的問題,請記住檢查答案!
在一個完美的世界裏,你會認爲開發者會讓它變得更容易。這應該所需的一切,但沒有它不工作...:
$('#summernote2').summernote('contenteditable','false');