Javascript 在dojo 1.7中使用数据dojo id
我尝试使用脚本中的一些“dijit”小部件,例如更改内容或连接事件 为此,我尝试在html中使用“datadojoid”属性,据我所知,该属性创建了类型为“datadojotype”且名称为“datadojoid”的全局对象 但我有错误。。。我做错了什么Javascript 在dojo 1.7中使用数据dojo id,javascript,dojo,Javascript,Dojo,我尝试使用脚本中的一些“dijit”小部件,例如更改内容或连接事件 为此,我尝试在html中使用“datadojoid”属性,据我所知,该属性创建了类型为“datadojotype”且名称为“datadojoid”的全局对象 但我有错误。。。我做错了什么 <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>Do
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Dojo test</title>
</head>
<body>
<div id="myDivId"
data-dojo-type="dijit.layout.ContentPane"
data-dojo-id="myDojoId">
Hello Everyone!
</div>
<script src="http://ajax.googleapis.com/ajax/libs/dojo/1.7.1/dojo/dojo.js" data-dojo-config="async: true, parseOnLoad:true"></script>
<script type="text/javascript">
require(["dijit/dijit", "dijit/layout/ContentPane"], function(){
//myDojoId.setContent("Hello World!"); // error : myDojoId is not defined
// Even this not working:
console.log(dijit.byId("myDivId")); // undefined
console.log(dijit.byId("myDojoId")); // undefined
});
</script>
</body>
</html>
Dojo测试
大家好!
require([“dijit/dijit”,“dijit/layout/ContentPane”],function()){
//myDojoId.setContent(“Hello World!”);//错误:未定义myDojoId
//即使这样也不起作用:
console.log(dijit.byId(“myDivId”);//未定义
console.log(dijit.byId(“myDojoId”);//未定义
});
数据dojo id
和jsId(已弃用)属性创建引用该dijit的全局对象
我认为您需要在ready()调用中结束查找
require([“dojo/ready”、“dijit/dijit”、“dijit/layout/ContentPane]”),函数(ready、dijit、ContentPane){
//还不应该被定义
console.log(dijit.byId(“myDivId”);//未定义
console.log(myDojoId);//未定义
就绪(函数(){
log(dijit.byId(“myDivId”);
//请注意,数据dojo id如何没有查找功能
console.log(myDojoId);
});
});
<script type="text/javascript">
require(["dojo/ready","dijit/dijit", "dijit/layout/ContentPane"], function(ready,dijit,ContentPane){
//shouldn't be defined yet
console.log(dijit.byId("myDivId")); // undefined
console.log(myDojoId); // undefined
ready(function(){
console.log(dijit.byId("myDivId"));
//note how data-dojo-id doesn't have the lookup
console.log(myDojoId);
});
});
</script>