dojo -- it is critical to pull in "dojo/domReady!"

前端之家收集整理的这篇文章主要介绍了dojo -- it is critical to pull in "dojo/domReady!"前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

Issue: Can not get handler of an element by using dojo.byId(“element id”) ;

You want to add an event to a button,code goes like this:

<script>

require(["dojo","dojo/on","dijit/registry","dojo/dom","dojox/mobile","dojox/mobile/parser","dojox/mobile/SwapView","dojox/mobile/PageIndicator","dojox/mobile/Heading","dojox/mobile/ScrollableView","dojox/mobile/EdgeToEdgeList","dojox/mobile/Button”

],function(dojo,on,registry,dom){

     var handler = dojo.byId("btn");

     on(handler,"click",function(e){

           alert("i am clicked");

     });

});

</script>

     <script type="text/javascript" src="engmain.js"></script>

 

</head>

<body style="visibility:hidden">

     <div id="mainview" class="mainview" data-dojo-type="dojox/mobile/ScrollableView">

    

     <button id="btn" data-dojo-type="dojox/mobile/Button">click me

           <img src="images/bottomarrow.png"/>

     </button>

     <div id="result" ></div>

                maincontent

     </div>

</body>

No matter how hard you clicked the button,the button just did not give you any response.

And you will see this in your debugging environment (FireBug) – target is null

Possible Cause:

DOM tree didn't ready when dojo.byId(“elementID” executed,so the element you specified cannot be identified.

Reference: http://www.jetwu.cn/archives/101


Solution:

Ensure that you pull in dojo/domReady! when you need to do something with element of the DOM tree.


The code is as below,for your reference.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
        "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>

	<title>slip view</title>
	<link rel="stylesheet" href="">
	<script type="text/javascript" src="dojox/mobile/deviceTheme.js"></script>

	<script type="text/javascript" src="dojo/dojo.js" 
    	data-dojo-config="isDebug:false,parSEOnLoad: true,debugAtAllCosts:false"></script>

<script>
require(["dojo","dojox/mobile/Button","dojo/domReady!"
],dom){
	var handler = dojo.byId("btn");	
	on(handler,function(e){
		alert("i am clicked");
	});
});

</script>
	<script type="text/javascript" src="engmain.js"></script>

</head>
<body style="visibility:hidden">
	<div id="mainview" class="mainview" data-dojo-type="dojox/mobile/ScrollableView">
	
		<button id="btn" data-dojo-type="dojox/mobile/Button">click me
		<img src="images/bottomarrow.png"/>
		</button>
	<div id="result" ></div>
			main content
	</div>
</body>


</html>
原文链接:https://www.f2er.com/dojo/291181.html

猜你在找的Dojo相关文章