zoukankan      html  css  js  c++  java
  • dojo/domReady! 中感叹号的作用

    废话

    其实不算个技术问题,但实在是花了我不少时间,不记下来都对不起我这浪费掉的几十分钟。

    问题

    在dojo官网上看教程,跟着做点练习,看到Dojo DOM Functions那节,有一个练习是改变页面上的列表(li)内容,于是我就写了如下代码:

    require(["dojo/dom", "dojo/domReady"], function(dom) {
     
        function setText(node, text){
            node = dom.byId(node);
            node.innerHTML = text;
        }
     
        setText(dom.byId("one"), "One has been set");
        setText("two", "Two has been set as well");
    });
    
    	<ul id="list">
    		<li id="one">One</li>
    		<li id="two">Two</li>
    		<li id="three">Three</li>
    		<li id="four">Four</li>
    		<li id="five">Five</li>
    	</ul>
    

    跑起来以后,控制台里一直报错,类似"can't set properties of null",意思是dom.byId("one")返回是null,我怎么都觉得不可能,来回核对了id N遍啊N+1遍,又对dom添加观察发现也是正常的。总之,就是来来回回折腾了好久,然后猛地往上一瞄......

    解决

    "dojo/domReady"应为:"dojo/domReady!"

    “The exclamation mark is required to tell Dojo not to execute the callback until the DOM is ready.”

    少了这个感叹号,并没有等待dom加载完就开始跑函数了,这个时候即使按正确的id也是返回null。

  • 相关阅读:
    vue 页面设置title
    git clone 下载慢 解决方法 码云
    nestjs pm2 启动 静态文件404报错
    Linux释放内存空间
    DBMS_STATS.GATHER_SCHEME_STATS学习
    TPCH测试工具
    Oracle中shrink space命令
    java 测试框架 TestNG
    数据库与linux中quota的作用
    java 测试框架
  • 原文地址:https://www.cnblogs.com/SheilaSun/p/4380892.html
Copyright © 2011-2022 走看看