Dojo附加了像jQuery一样的按钮

时间:2011-10-07 01:25:04

标签: jquery dojo

在jQuery中,如果我想将按钮样式附加到任何标签,我可以这样做:

$("a").button();

如何使用dojo将按钮样式附加到任何标记?

2 个答案:

答案 0 :(得分:3)

Dojo方式是以声明方式或以编程方式创建元素。以下是使用dojoType属性创建按钮的声明性示例:

<input id="button1" dojoType="dijit.form.Button" label="Do it!"/>

这是一个程序化示例,其中创建了一个按钮并将其插入到DOM中:

var button = new dijit.form.Button({ label: "Click me!"}, "node_id");

作为第一个参数传递的对象包含实例化控件的属性(在本例中为我们的按钮)。第二个参数是DOM节点,其中将插入新元素(或附加到,而不是 - 原始节点几乎被替换)。

另一个例子(特别是Buttons,但概念类似,请参阅http://dojotoolkit.org/reference-guide/dijit/form/Button.html#dijit-form-button

关于使用“any”标签的问题(不确定这是否是您所获得的),您可以使用ID定义任何HTML标签,并使用这些方法将其替换为按钮。例如:

<h3 id="button1" dojoType="dijit.form.Button" label="Do it!"></h3>

也会被Dojo解析并工作。

如果您是Dojo的新手,您应该知道如果您来自jQuery,这种方法会有很大不同。 Dojo有一个非常模块化的系统来包含代码,使用dojo.require(),而不是在你的HTML中包含Javascript文件,所以你必须在包含dojo之后指定dojo.require(“dijit.form.Button”) .js(并指定以下属性

djConfig="parseOnLoad: true"
在脚本标记中

包含dojo.js以自动解析dijit小部件。)

答案 1 :(得分:1)

这里有一个与dojo中jQuery相当的东西:

// Select all 'a' tags.
dojo.query('a').forEach(function(element) {

    // Attach a button to each 'a' tag.
    var button = new dijit.form.Button({
        onClick: function(){ location.href = element.href; }
    }, element);
    button.startup();
});

在这里演示:http://jsfiddle.net/rLtNq/。请注意包含claro.css文件,并且如mydoghasworms所述,您需要dojo.require按钮类。