使用Javascript函数创建DOJO按钮,导致创建的按钮发生冲突
Creating DOJO buttons with Javascript function causing conflicts in buttons created
我为英语中的任何错误道歉,我是巴西人。
我有一个带有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); });
}
);
谢谢。
问题不在上面提到的代码中。主要问题是你在CPR_Compra.Cadastro
方法中使用了innerHTML
。您不能认为dojo dijit只是HTML标记,它们是DOM对象、节点等等。当你更新div_Cadastro.innerHTML
时,它破坏了wigit,但保留了HTML标签,因此onclick事件停止工作。
用appendChild
代替innerHTML
,这样dom节点就不会被破坏。下面是JSBin的工作实现。
http://jsbin.com/butacuquza/edit?js,输出
from https://davidwalsh.name/dojo-widget
- 要以编程方式创建小部件,需要创建DOM节点,这些节点充当未来小部件 的占位符。
和阅读这个:https://davidwalsh.name/dojo-behavior
-
使用dojo.behavior创建小部件
- 创建小部件是使用dojo.behavior的更好机会:
对于像我一样来到这里的人,更多的链接:
HTML DOM appendChild()方法
- https://www.w3schools.com/jsref/met_node_appendchild.asp
Node.appendChild()
方法将节点添加到指定父节点的子节点列表的末尾。
- https://developer.mozilla.org/en-US/docs/Web/API/Node/appendChild
相关文章:
- 如何删除我用按钮创建的内容
- 单击按钮创建多实例jQuery UI对话框
- 如何为滑块的分页按钮创建简单的下一个和上一个触发器按钮
- Javascript使用变量通过按钮创建url
- 按钮创建无法定位功能代码错误
- 使用按钮创建新的下拉列表
- 点击按钮创建一个带有css动画的放射状进度条
- 从执行jscript列表按钮创建多个相关对象
- 在完整日历的Dayclick事件上触发jQuery qTip,然后使用其中的按钮创建事件
- 通过摇晃按钮创建小摆动
- 摆脱形式,仅使用按钮创建新记录
- 如何使用下一个和上一个按钮创建 jquery 滑块
- Chrome 扩展程序:通过单击按钮创建新标签页
- 使用按钮创建列表
- ExtJS:如何使用MessageBox按钮创建自定义模式窗口
- 如何在ASP.Net中单击按钮创建动态表
- carouFredSel:为next/prev按钮创建一个函数
- extjs如何使用单选按钮创建菜单
- 单击按钮创建表时,请选中“获取值”复选框
- 如何使按钮创建一个不同的文本,每次它是按下