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。

  • 相关阅读:
    源码
    Leetcode 230. 二叉搜索树中第K小的元素 中序遍历
    Leetcode 160. 相交链表 哈希 链表
    Leetcode 142. 环形链表 II
    Leetcode 217. 存在重复元素 哈希 排序
    asp.mvc2.0资料
    关于CRM的介绍
    WPf控件模板缺省样式
    皮肤制作工具
    关于linq的用法
  • 原文地址:https://www.cnblogs.com/SheilaSun/p/4380892.html
Copyright © 2011-2022 走看看