dijit / form / Button onClick事件

时间:2014-07-06 12:11:01

标签: button onclick dojo

我被卡住了.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>

1 个答案:

答案 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按钮周围单独看到标签,当被激活时,将调用上述功能。

没有主题时的外观如何?

enter image description here

我在这里添加了红色边框和箭头以突出显示。您将只看到该文本。如果单击该按钮,则将调用该事件,而不是在单击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>

主题现在看起来如何: - enter image description here

查看此演示 - http://jsfiddle.net/D5kLg/