我被卡住了.OnClick事件没有解雇..我错过了什么? 按钮创建,我看到了,但没有事件。
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/dojo/1.8/dojo/dojo.js"></script>
</head>
<body>
<script>
require(["dijit/form/Button","dojo/domReady!"], function(Button){
var b = new Button({value:"clickMe"});
b.placeAt('btnDiv');
var x=b.on("onClick", function(){alert('clicked'); });
})
</script>
<div id='btnDiv'/>
</body>
</html>
答案 0 :(得分:2)
有两个错误。首先,事件名称只需要像
一样使用 button.on("click", function() {...});
// NOT button.on(&#34; onClick &#34;,function(){...}); < / p>
然后第二个是,按钮小部件不采用该值。这是&#34;标签&#34;属性。所以,试试这种方式: -
require(["dijit/form/Button","dojo/domReady!"], function(Button){
var b = new Button({label:"clickMe"});
b.placeAt('btnDiv');
var x=b.on("onClick", function(){alert('clicked'); });
})
没有使用任何主题,因此窗口小部件将占用您在屏幕上看到的普通HTML按钮旁边的几个像素。如果您尝试单击那里,如果您不打算使用label属性。如果您只是进行了上述更改,您将在HTML按钮周围单独看到标签,当被激活时,将调用上述功能。
没有主题时的外观如何?
我在这里添加了红色边框和箭头以突出显示。您将只看到该文本。如果单击该按钮,则将调用该事件,而不是在单击HTML按钮时调用。因为,事件附加到窗口小部件,而不是HTML元素。这就是为什么应用主题对于避免这种混淆很重要的原因。
如何添加主题? - 只需在开头添加以下css,然后将class="claro"
添加到body标记。
<style type="text/css">
@import "http://ajax.googleapis.com/ajax/libs/dojo/1.8/dijit/themes/claro/claro.css";
@import "http://ajax.googleapis.com/ajax/libs/dojo/1.8/dojo/resources/dojo.css";
</style>
主题现在看起来如何: -
查看此演示 - http://jsfiddle.net/D5kLg/