2016-11-29 1 views
0

내가 이런 버튼에 대한 설정 목록이 작동하지 않는 루프에서 TinyMCE에 여러 개의 버튼을 추가.

tinymce.PluginManager.add('myPlugin', function(editor, url) { 
     for (var i in config) { 
     item = config[i]; 
     editor.addButton(item.name, { 
      text: item.name, 
      onclick: function() { 
      editor.windowManager.open({ 
       title: item.insertionConfig.title, 
       onsubmit: item.insertionConfig.onsubmit 
       } 
      }; 
      } 
     }); 

을하지만 첫 번째 버튼을 클릭하면, 그것은 두 번째 버튼의 제목을 보여줍니다 그래서 이런 식으로 끝날 것입니다. 버튼의 모든 설정은 마지막으로 추가 된 버튼을 나타냅니다. 문제는 루프의 '항목'에 관한 것이고 (모든 단추는 마지막 항목 인 동일한 항목 개체를 참조합니다.) 그러나 문제를 해결하는 방법을 모르겠습니다.

답변

0

시도는 온 클릭 함수 내에서 항목에 대한 변수를 범위 로컬 만들기

당신이로 실행하는 문제는 변수가 함수가 실제로 실행되는 시간에 자바 스크립트로 관리하는 방법이다. 클릭 기능은 항목을 클릭 할 때까지 실제로 실행되지 않으며 item은 배열의 마지막 항목을 가리 킵니다.

편집이 일어날 수있는 방법이 TinyMCE에 바이올린을 체크 아웃 : http://fiddle.tinymce.com/REfaab/1

+0

@Micheal을 : 그했다하지만 문제가 해결되지 않았다. 언급 한 'thisItem'변수는 여전히 동일한 'item'변수를 참조하므로 문제가 해결되지 않습니다. –

+0

@ R.Abbasi는 내 수정 된 답변에서 TinyMCE Fiddle 링크와 내 편집을 참조하십시오. –

+0

@Micheal, 매력처럼 일했습니다! 따라서 우리는 설정 자체에서 항목을 복사해야합니다. 팁 주셔서 대단히 감사합니다. –