2016-08-13 30 views
1

我對任何英文錯誤表示歉意,我是巴西人。使用Javascript函數創建DOJO按鈕導致在創建按鈕時產生衝突

我有一個DOJO圖書館的網站,我在很多事情上都使用它。

我有一些dificulty在JavaScript中創建按鈕。

我寫了一個函數來創建按鈕,它正在工作,正在創建按鈕。

但是,當一個新的按鈕被創建時,前一個按鈕丟失了事件「onclick」。

可以看這裏:http://jsbin.com/xuzevi/edit?html,js,output

創建的按鈕,我用這個代碼:

require([ 'dojo/dom', 'dojo/parser', 'dijit/form/Button', 'dojo/domReady!' ], 
     function(dom, parser, Button) 
     { 
      var div_Compra = document.getElementById(p_Div); 
      if(! div_Compra) { console.log('ERRO - div_Compra: '+p_Div); return false; } 

      var botao = new Button({ label: '' }); 
      if(! botao) { console.log('ERRO - botao'); return false; } 

      botao.startup(); 
      botao.set('iconClass', 'dijitEditorIcon dijitEditorIconSelectAll'); 
      botao.set('showLabel', false); 
      botao.placeAt(div_Compra); 
      botao.on('click', function() { Mensagem(p_Indice); }); 
     } 
); 

感謝。

+0

請在您的問題,可用於重新創建你的錯誤代碼。閱讀以下文檔http://stackoverflow.com/help/how-to-ask – alexi2

+0

嗨,代碼在這裏:http://www.angar27.com.br/zzz/CPR_Compra.js。點擊鏈接將顯示源代碼。 –

+0

請閱讀http://stackoverflow.com/help/mcve並查看此「如果可以創建可以鏈接到的問題的實例(例如http://sqlfiddle.com/或http://jsbin.com/)然後這樣做 - 但也包括在你的問題本身的代碼。不是每個人都可以訪問外部網站,並且鏈接可能會隨着時間的推移而崩潰。「這裏http://stackoverflow.com/help/how-to-ask – alexi2

回答

1

該問題不在上述代碼中。主要問題是您在CPR_Compra.Cadastro方法中使用innerHTML。你不能認爲,dojo只是HTML標籤,它們是DOM對象,節點等等。當您更新div_Cadastro.innerHTML時,它會銷燬wigit,但保留了HTML標記,因此onclick事件停止工作。

而不是使用innerHTML使用appendChild,這樣的dom節點不會被破壞。下面是帶有工作實現的JSBin。

http://jsbin.com/butacuquza/edit?js,output

+0

感謝您的回答 –