2017-04-25 2 views
0

많은 스레드를 훑어 보았지만 내 문제를 해결하는 대답을 찾을 수 없습니다. 그래서, 정말 같은 CKEditor 인스턴스를 정의 : 몰라요 그러나CKEditor 변경 이벤트를 catch 할 수 없습니다.

var editor = $('#test-editor'); 

editor.ckeditor(function() {}, { 
    customConfig: '../../assets/js/custom/ckeditor_config.js', 
    allowedContent: true 
}); 

가 어떻게 change 이벤트를 잡을 수 있습니다. 이것이 내가 시도한 것입니다.

var t = editor.ckeditor(function() { 
    this.on('change', function() { 
    console.log("test 1"); 
    }); 
}, { 
    customConfig: '../../assets/js/custom/ckeditor_config.js', 
    allowedContent: true 
}); 

editor.on('change', function() { 
    console.log("test 2"); 
}); 

t.on('change', function() { 
    console.log("test 3"); 
}); 

이 세 시도는 모두 실패로 끝났습니다. 페이지에있는 모든 편집기를 반복하고 싶지 않다는 것을 추가해야합니다. 구성 요소에 렌더링 된 하나의 특정 편집기를 #test-editor으로 처리하려고합니다. 어떻게해야합니까?

+0

BTW, 내 편집기 변수가 약속 개체가 포함되어 있는지를 참조하십시오. 하지만 나는 그 (것)들과 결코 협상하지 않으며 나는 사건을 붙잡기 위하여 어떻게이 사실을 이용할 수 있는지, – Jacobian

답변

1

jQuery ckeditor() 메서드는 event handling에 CKEditor 이벤트 5 개만 표시하는 jQuery 개체를 반환합니다. 다른 이벤트를 사용하려면 CKEditor.editor 객체를 사용해야합니다.이 객체는 jQuery 객체의 editor 속성에 액세스합니다.

그래서, 당신은 같은 것을 사용해야합니다

var myeditor = $('#test-editor').ckeditor({ 
    customConfig: '../../assets/js/custom/ckeditor_config.js', 
    allowedContent: true 
}); 
myeditor.editor.on('change', function(evt) { 
    console.log('change detected'); 
}); 
+0

감사한다! 그건 그렇고 아마 CKEditor에 대해 한 가지 더 많이 알고있을 것입니다. 내게는 서식, 글꼴 및 크기 콤보 상자가 툴바에 너무 많은 부분을 차지하는 것처럼 보입니다. 아이콘이나 맞춤 편지로 변경하는 것이 가능한지 알고 계십니까? – Jacobian

+0

나는 재미를 위해 그들의 레이블을 한 번 바꿨지 만 너비는 같았다 (어쩌면 아이템의 폭 때문에). – Wizard