我为我的英语错误道歉,我是巴西人。
我有一个网站与DOJO图书馆,我用它在许多事情。
我有一些困难,以创建按钮的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); });
}
);
谢谢。
3条答案
按热度按时间sy5wg1nm1#
问题不在上面提到的代码中。主要问题是你在
CPR_Compra.Cadastro
方法中使用innerHTML
。你不能认为dojo dijit只是HTML标记,它们是DOM对象,节点等等。当你更新div_Cadastro.innerHTML
时,它破坏了wigit,但保留了HTML标记,所以onclick事件停止工作。不要使用
innerHTML
,而是使用appendChild
,这样dom节点就不会被破坏。下面是JSBin的工作实现。http://jsbin.com/butacuquza/edit?js,output
uqzxnwby2#
从https://davidwalsh.name/dojo-widget开始
读一下这个https://davidwalsh.name/dojo-behavior
wvyml7n53#
对于其他像我一样来到这里的人,还有一些链接:
HTML DOM appendChild()方法
Node.appendChild()
方法将节点添加到指定父节点的子节点列表的末尾。