我想动态创建一个dojo按钮,我有使用iconClass等选项的问题。
以下是我如何创建按钮
<td valign="middle" align="
<button data-dojo-type="dijit/form/Button" data-dojo-props="iconClass:'icon_btn_add', showLabel: false" type="button" onClick='require(["RouteView.js"], function( s ) { s.cb_click_btn_add(1); })' id="id_btn_add_0"
</td>
我试过了
btn = new Button({
"data-dojo-props": "iconClass:icon_btn_add, showLabel: false",
"onClick": "require(['RouteView.js'], function( s ) {
s.cb_click_btn_add("+(n)+
"id": "id_btn_add_"+n,
"disabled": "true"
}, id_td3);
和此:
domConstruct.create("button", {
"data-dojo-type": "dijit/form/Button",
"data-dojo-props": "iconClass:icon_btn_add, showLabel: false",
"type": "button",
"onClick": "require(['RouteView.js'], function( s ) { s.cb_click_btn_add("+(n+1)+"); })",
"id": "xid_btn_add_"+n,
"disabled": "true"
}, id_td3, "last");
不考虑“data-dojo-props”属性。
如何动态创建dojo Button并使用iconClass?
答案 0 :(得分:0)
我假设你已经通过HTML delcaration方法创建了Dojo小部件。因此,通过HTML中的data-dojo-type属性声明按钮,如:
<button id="an_id_for_your_button" data-dojo-type="dijit/form/Button" data-dojo-props="iconClass:'icon_btn_add', showLabel: false"></button>
Dojo将为您创建按钮,并在其注册表中记录对完全创建的按钮小部件的引用,其ID与原始按钮相同。你可以像这样得到它的引用:
require([ ..., "dijit/registry", ...], function(..., registry, ...) {
var btn = registry.byId("id_btn_add_0");
btn.set("onClick", function(e) {...});
// Although once you are in JavaScript realm consider using "on" like
btn.on("click", function(e) {...});
});
注意“registry.byId()”返回的对象与“dom.byId”返回的DOM节点不同。有关按钮的更多信息,请访问:http://dojotoolkit.org/reference-guide/1.10/dijit/form/Button.html
考虑到最好避免在HTML标记中声明事件处理程序(特别是使用Dojo)。 HTML声明的事件处理程序强制处理程序处于全局范围,控制“this”范围可能很棘手。