<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/dojo/1.6/dojo/dojo.xd.js" type="text/javascript"></script>
<script type="text/javascript">
dojo.require("dojo.event.*");
function openAlert(evt) {
alert("Hello! This is an alert from Dojo!");
}
</script>
</head>
<body>
<p id="para">This is a paragraph.</p>
<script type="text/javascript">
var para = dojo.byId("para");
dojo.event.connect(para, "onclick", openAlert);
</script>
</body>
</html>
谢谢。
答案 0 :(得分:3)
如果在dojoAddOnLoad
添加点击处理程序,那会更好。
代码:
function onClickHandler(event) {
alert('clicked!')
}
dojo.addOnLoad(function(){
dojo.connect(dojo.byId('para'), 'onclick', onClickHandler);
});
答案 1 :(得分:3)
首先,dojo.require("dojo.event.*");
不正确。我认为您不能将通配符加载到dojo.require
。此外,dojo.event
似乎已被弃用:现在只有dojo.connect
。
您正在从CDN(xd =跨域)加载。这是一个“异步”加载 - 这意味着当您的代码运行时,可能尚未加载Dojo库。
您需要将用户代码放入dojo.addOnLoad
或更新的样式dojo.ready
。在下载所有Dojo模块后调用它们。
答案 2 :(得分:1)
改用dojo.connect。您只需要导入dojo,不需要额外的包,并将dojo.event.connect更改为dojo.connect;其余代码保持原样,见下文。
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/dojo/1.6/dojo/dojo.xd.js" type="text/javascript"></script>
<script type="text/javascript">
function openAlert(evt) {
alert("Hello! This is an alert from Dojo!");
}
</script>
</head>
<body>
<p id="para">This is a paragraph.</p>
<script type="text/javascript">
var para = dojo.byId("para");
dojo.connect(para, "onclick", openAlert);
</script>
</body>
</html>