部分Dojo常用函数简介(三)——页面生命周期及DOM相关常用函数

Flink on k8s 环境搭建(一) Flink on Yarn的环境搭建过程中,需要进行配置较多,且需要搭建zookeeper Hadoop Yarn 等相关组件,安装流程比较复杂,集群出现问题重新安装的流程也比较复杂,且Yarn的3个节点中 只能起了 3个resourceManager和1个NodeManager,Flink 作业申请资源时只能 向NodeManager的节点申请资源,整体有资源瓶颈的隐患(后继flink作业会越来越多),现在尝试进行Flink on k8s 的环境搭建。 阅读详情

每个Ajax 框架都对Javascript 做了扩展,提供了很多常用函数,增强了 Javascript 的开发效率。在这里将对部分Dojo 中的常用函数做简单的介绍。由于Dojo的常用函数较多,也为方便大家阅读,将这些常用函数分为了五个类别分别进行介绍。本文将介绍第三部分的内容:页面生命周期及DOM相关常用函数。

* 本系列博文的绝大多数内容来自于对dojocampus.org上的dojo reference guide文档的翻译,在此也特别感谢文档的翻译者们:Fei Jia, Zhu Xiao Wen, Li Wen Bing, Zhang Jun, Hu Kuang, Huang Wei, Wu Min Qi, Mo Ying, Cheng Fu, Zhong Si Qi

 

dojo.addOnLoad

如果想用好dojo,必须熟悉Dojo.addOnLoad,它提供了一种机制使作为参数传入该函数的语句及其他函数可以在整个页面的DOM加载完成之后运行。常见的一种情况是:

 

 

这段JS代码会无法正确运行,因为在js运行时,”other”还未被定义。当然,你可以把这段JS代码放在页面最后,但这样做并不符合正常的HTML编写方式,而且在另一些情况下,也会对你的代码造成部分影响。


对于这类情况,你就可以使用dojo.addOnLoad(...):

 

 

或者:

 

 

dojo.addOnUnload

与dojo.addOnLoad(...)相呼应,Dojo.addOnUnload用于注册函数在页面销毁时运行。

 

 

dojo.query

在进行DOM相关操作时,很多时候需要查找特定的DOM节点,使用浏览器原生的DOM API进行查找不仅需要写较多的代码,而且很多时候效率十分低下,dojo.query则提供了一个更快、更方便的方式来对DOM节点进行查询。


Dojo.query接收两个参数,第一个为一个字符串,是通过一些基于CSS3标准的属性查询模板,第二个参数为可选参数,为一个DOM节点对象或节点ID,为查询设定范围。


由于dojo.query采用的是CSS3标准查询模板,当你想用dojo.query进行DOM查询时,你可以在任何的CSS文档中找到正确的查询条件模板,下面的示例是一些简单的查询调用:

 

 

dojo.byId,dojo.doc, dojo.body

dojo.byId用途与document.getElementById一致:根据DOM节点的ID返回DOM节点对象,但简短了许多,在所有的浏览器下都是有效的。

 

dojo.doc相当于windows[“document”]的值,该函数的作用主要有两个。首先它提供了一个指向当前文档对象的更为简洁的引用。其次,所有使用 dojo.doc 的引用,只需要通过改变dojo.doc变量的值,就可以临时切换到其它的文档对象作用域上。使用这个变量来替代对 window.document 的使用。通过这种方式可以确保是在当前页面的文档对象上工作。另外,通过使用此变量,当文档对象发生改变的时候,与文档对象相关的操作还能正确执行。这点对于需要在iframe中运行的Dijit组件来说尤为重要。


dojo.body用于返回当前文档的body对象。

 

dojo.create,dojo.place

dojo.create()可以简化在维护DOM时经常需要频繁执行的一系列操作步骤,例如:  新建DOM节点/给已存在的节点赋予新的属性 –> 为其设置属性 -> 将其置于DOM树上。

 

该函数接受四个参数: dojo.create(tag, attrs, refNode, pos);

 

tag可以是字符串或DOM节点。如果是字符串,函数会将其视作节点的标签名,以此来新建节点。建立节点时,会以refNode作为父节点。如果refNode为null或并未指定,则默认以dojo.doc作为父节点。

 

attrs是一个JavaScript对象,其中包含了用以赋予节点的一组属性信息。该参数会在节点创建成功后被原封不动的传给dojo.attr。attrs参数可以null,也可以不指定,亦即“不设置任何属性”,但是假如你想指定函数余下的传入参数,则应该为其显示的指定null值。

 

refNode,如之前提到的,作为创建节点的父节点对象,该参数为DOM节点对象或节点的ID。此参数可以省略,即表示“不立即安置该节点”。

 

pos为可选参数。取值可以是数字,或如下字符串之一:"before", "after", "replace", "only", "first", 或"last"。如果省略,则默认取"last"。表示安置创建的节点到给定的位置上。

 

若第一个参数传入的是``tag``字符串,则函数成功执行后会返回以该字符串命名的DOM节点,若传入的是DOM节点,则直接将其作为结果返回。例如, 新建一个带href属性的超链接标记,将其置于<body>下:

 

 

dojo.place函数用于放置给定的DOM节点到指定的位置上。在某些场合下,根据HTML片段来创建和安置节点也许会更容易一些,我们无需为节点设置任何属性,或是将其指定为某个HTML片段的一部分,则可以考虑使用dojo.place:

 

 

dojo.destroy

dojo.destroy用于将当前节点从其父节点中删除,并逐一销毁自身及其所属的全部子节点。该函数仅对DOM节点有效,并且没有返回值。

 

 

dojo.attr, dojo.hasAttr, dojo.removeAttr

Dojo.attr提供了获取或修改(增加)DOM节点属性的、事件、CSS样式的方法,它既可作为getter也可作为setter。Dojo.attr包括三个参数:

 

 

node:要进行操作的 DOM节点对象或其ID


attr:要进行操作的DOM节点属性名,或一个包含键值对的JSON对象,用于为DOM节点设置其中包括的所有属性


value,为可选参数,如果attr参数为某一属性名,且传入value参数,则为该节点设置相应属性,如果未传入value参数,则返回该节点的attr属性值,如果该节点没有该属性,则返回false。


dojo.hasAttr用于检查给定的DOM节点是否有给定的属性值,如果有则返回true,否则返回false:

 

 

dojo.removeAttr用于移除给定节点给定节点的给定属性:

 

dojo.position,dojo.marginBox, dojo.contentBox

Dojo.position用于获取给定DOM节点的绝对位置及大小信息(包括边界 - border)。返回值为一个JSON对象:{ w: 300: h: 150, x: 700, y: 900, },分别表示w:宽度,h:高度,x:X坐标值,y:Y坐标值,单位都为px。


该函数接受两个参数:


node: 要获取信息的 DOM节点对象或其ID


includeScroll:该参数为一个boolean值,默认为false,当设为true时,返回的x及y则为相对于整个document文档的位置值(忽略滚动条)。


dojo.marginBox和dojo.contentBox都可以用于获取和设置给定节点的大小,第一个参数为给定的DOM节点,第二个参数为可选参数,是一个类似于{ l: 50, t: 200, w: 300: h: 150 }的JSON对象,如果传入第二个参数,则将给定节点设置新的位置、大小。区别在于marginBox包括了节点的margin大小,它们的返回值都为一个对象:{ l: 50, t: 200, w: 300: h: 150 }。

Dojo.style

用于获取或设定DOM节点的样式。该函数接收3个参数:



node:要进行操作的 DOM节点对象或其ID


style:要进行操作的DOM节点样式属性名,或一个包含键值对的JSON对象,用于为DOM节点设置其中包括的所有样式


value:为可选参数,如果style参数为某一样式属性名,且传入value参数,则为该节点设置相应样式,如果未传入value参数,则返回该节点的style样式值。

dojo.hasClass, dojo.addClass, dojo.toggleClass

dojo.hasClass用于判断给定的DOM节点是否有指定的CSS class


dojo.addClass用于为给定的DOM节点增加指定的CSS class


以上两个函数都接受2个参数:


要进行操作的 DOM节点对象或其ID;一个CSS class名称字符串:

 

 

dojo.toggleClass用于为给定的DOM节点添加或删除指定的CSS class。此函数接受3个参数:


node: 要进行操作的 DOM节点对象或其ID


class: 一个CSS class名称字符串。


condition:可选参数,为boolean值。如果给定该参数,当该 参数为TRUE时,操作为添加class,为false时操作为删除class。如果该参数未被指定,如果给定的DOM节点没有给定的class则为其添加,否则删除给定的class。

 

 

以上就是部分Dojo的页面生命周期及DOM相关常用函数,在下一部分中,会介绍关于Dojo对于String及Array对象的一些扩展函数。

31、车载通信中的可见光通信(VLC)技术解析 本文详细解析了车载通信中可见光通信(VLC)技术的应用背景、优势及发展前景。对比传统RF通信技术(如DSRC),VLC利用LED照明设备实现高效、安全的车辆与车辆、车辆与基础设施之间的通信,具有频谱资源丰富、安全性高、无电磁干扰等优势。文章还探讨了VLC在交叉口交通控制、高速公路通信、自动驾驶等场景的应用潜力,展望了其在未来智能交通系统中的重要作用。 阅读详情

相关推荐

避坑指南:Ubuntu 22.04上源码编译Autoware.universe(Humble版)的完整流程与常见错误修复

本文详细介绍了在Ubuntu 22.04上源码编译Autoware.universe(Humble版)的完整流程与常见错误修复方法。从环境准备、依赖安装到编译优化,提供了实用的避坑指南和解决方案,帮助开发者高效完成安装并避免常见问题。特别针对源码安装过程中的疑难杂症给出了具体修复建议。

weixin_33712987的博客 382

dojo.place

&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;index&lt;/title&gt; &lt;meta http-equiv="Content-Type" content="text/ht

默默的小熊 352

Arduino——GY39大气压、温湿度、光照模块

前几天买东西的时候买了一个GY39,这个模块集成了温湿度,大气压,海拔,光照一体,使用起来很方面。它有两种工作模式使用串口模式时需要搭配转接板,我选择了IIC模式,看一下通信协议吧,就是关于高八位和低八位的数据。看一下接线。

戚晨夕的博客 2605

dojo入门总结

引用dojo的引用 js中,某些属性名字类似于font-size 和 border-top ,要使用大小写组合来代替“-”,变成fontSize 和 borderTop 1. Dojo可以runtime实时设定各种配置信息。parseOnLoad用来处理页面装载解析widgets和添加代码,isDebug用来打开和禁止特定的debugging信息。     djConfig="parseO

心如止水 宠辱不惊 790

Photoscan+Smart3D+CC组合建模实战:如何用三款工具打造高精度实景模型

本文详细介绍了如何整合Photoscan、Smart3D和ContextCapture三款软件,构建高效高精度的实景三维建模工作流。通过利用Photoscan稳健的空三解算、Smart3D精准的刺点优化,以及ContextCapture强大的最终建模能力,该方案能有效应对复杂地形与海量数据,显著提升模型质量与生产效率,适用于测绘、文化遗产数字化等专业领域。

weixin_29230649的博客 104

开源项目-智能算法中台管理系统

智能算法中台管理系统,系统主要有样本中心,算法中心,模型中心等模块

u010479989的博客 3001

20190320 Dojo常用方法总结

0. 使用环境 Dojo版本:1.14.2 此次总结以dojo的base为主,即不需要手动引入组件 1. 常用不归类方法 1.1. dojo.addOnLoad 在页面加载完成并且dojo.require语句的请求也返回了结果之后执行 dojo.addOnLoad(function () { /* Any content that depends upon dojo.require s...

weixin_30457065的博客 296

slew dreate,slew threshold与transition计算

​只看rise情况下,from pin取slew threshold10%-90%的区间,slew derate为1,计算得到transition为1.002e-10,to pin的slew threshold 为30%-70%,slew derate 0.5,从波形列表上取相近的值3.75e-10和8.75e-10,计算得到transition为(8.75e-10-3.75e-10)/0.5=1e-9,考虑精度和取值区间问题,基本符合工具计算的值,如下:​。如下示例,在.lib库中有定义以下内容。

m0_61544122的博客 793

dojo的一些常用知识

1、添加css  dojo.addClass(dojo.byId("printsportScore"), "choosedItem"); 2、得到某月的天数 var temp=new Date("2012,5,1"); alert(dojo.date.getDaysInMonth(temp)); var dateStr = dojo.date.locale.format(tempDate

无谓生活 6055

uniapp(全端兼容) - 超详细接入百度统计功能,给uniapp全平台各端项目引入添加百度统计的插件统计流量详细的步骤教程(提供最新的百度统计源代码,详细的示例代码复制粘贴即可快速搞定!)

uniapp h5 app 使用加入接入百度统计,uniapp百度统计,uniapp详细引入百度统计的教程,uniapp接入百度统计,uniapp如何实现加入百度的统计代码,uniapp怎么植入百度统计详细教程,uniapp如何对接百度统计,uniapp百度统计不生效怎么办,uniapp使用百度统计不生效常见问题,uniapp引入百度统计后没有生效,uniapp h5网页接入百度统计代码后没有统计无效,uniapp最新接入使用百度统计功能,uniapp增加百度统计代码,uniapp app如何接入百度统计,

✅ 精选推荐文章 1万+

试读源码在这里下载

试读文章的源码在这里下载。源码不做任何修改,重点重点重点:为了代码运行不报错,安装matlab 版本为 2021 及以上版本。matlab安装教程大家可以参考这个教程:手把手教你安装matlab软件。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 4302

Dojo的几个简单函数介绍

1.dojo.require:dojo包的核心函数,用来加载dojo的功能包. dojo.require("esri.map");//加载esri/map.js 2.dojo.addOnLoad,页面加载完后调用的函数 dojo.addOnLoad( function() { var MyMap = new esri.Map("MyMapDiv"); var MyTiledMapSe

954

深入剖析 Wenet 下 AISHELL-1 的 run.sh 脚本:从数据准备到模型训练

run.sh脚本用于处理 AISHELL-1 数据集的整个训练和测试流程。我们将逐步分析脚本中的每个部分,包括环境变量、参数设置、各个阶段的执行等。stage: 设置脚本的起始阶段(如数据准备)。stop_stage: 设置脚本的结束阶段。通过对 Wenet 下 AISHELL-1 的run.sh脚本的详细剖析,我们希望你能更好地理解每个步骤的功能及其背后的原理。此脚本不仅为模型训练提供了便利,也为用户自定义和扩展训练流程提供了基础。希望本教程能帮助你顺利完成语音识别项目!

帅小柏的博客 1633

Dojo 1.6 最新官方教程: Dojo DOM 函数

本文翻译自: Dojo DOM Functions 原作者: Sam Foster 翻译: Siqi (siqi.zhong@gmail.com)   在本教程中,您将学到如何使用Dojo简单地跨平台操作DOM。只需要基本DOM知识和几个Dojo函数,您就能高效地创

Dojo中文博客 1万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Dojo - 操作Dom的函数

DOM Manipulation You might be seeing a trend here if you have gotten this far in the tutorial, in th...

qq_45670012的博客 163

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

dojo中关于dom的操作

dojo中关于dom操作的有以下几个模块: dojo/dom模块 dojo/dom-construct模块 dojo/dom-attr模块 dojo/dom-prop模块 dojo/dom-class模块 dojo/dom-style模块 dojo/dom-form模块 1. dojo/dom模块 该模块定义了核心Dojo DOM API。该模...

shiyangxu的博客 635

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

web前端之精通dojo五:利用Dojo进行DOM事件编程

web前端之精通dojo五:利用Dojo进行DOM事件编程如果针对浏览器编程,让它动态地做任何事,就必须将代码与DOM事件关联起来。这时你会发现有两种不同的事件API可用。不干预下风的IE提供了第三种API————同时还附送了内存泄漏问题。通过深入学习这些API,可以了解浏览器间的不兼容性以及各浏览器的特性。事件编程很快就成为了让人头疼的问题。好在,Dojo为我们提供了一个完备的事件编程框架来解决这

爸爸去哪了2之熊猫三胞胎的博客 1098

JS、jQuery和Dojo对DOM的常用操作

在开发HTML5应用程序时,经常会创建、查找、修改DOM节点。熟练掌握DOM操作的各种常用方法十分必要。 一、DOM简介 文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口。在网页上,组织页面(或文档)的对象被组织在一个树形结构中,用来表示文档中对象的标准模型就称为DOM。 1、HTML DOM (文档对象模型) 当网...

Quincylk的专栏 627

Dojo 1.6 最新官方教程: 如何使用dojo.query 进行DOM查询和批量操作

在本讲义中,我们将学到DOM的查询,以及如何使用dojo.query来方便的查找并操作DOM节点。难度:初学者  适用的Dojo 版本: 1.6作者: Bryan Forbes译者: feijia原文连接: http://dojotoolkit.org/documentation/tutorials/1.6/using_query/ 入门对DOM编程的一个关键要素是能够快速高效的获取到你所要使用的节点。之前我们曾经介绍过使用dojo.byId来查找DOM节点的方法。但是,这种方法的局限性也很明显。你很难为页

Dojo中文博客 1万+

dojo框架简介

一.dojo介绍 dojo是一个js的工具集,一个面向对象的js框架(在widget中更能体现这点),根据功能分成多个module,每个module又分为多个package,可以根据程式的需要导入不同的package,类似于JAVA。  官方网站: http://dojotoolkit.org/  操作指南: http://manual.dojotoolkit.org/WikiHome 

sinat_32349327的博客 2979

Dojo与jQuery综合比较分析

最近Dojo和jQuery双双发布了最新的1.8版本,有着相同版本号的两个Javascript库也有许多核心的相同之处:相同的资源加载机制AMD、相同的选择器 引擎Sizzle等。作为业界知名的Javascript库,Dojo和jQuery在各自领域有着为数众多的拥护者。不过正所谓一把钥匙开一把锁,对一个项目来说肯定有个最适合它的工具库,用对了工具才能事半功倍。所以对项目经理或是技术总监来说,工程

Dojo中文博客 7万+

Dojo工具包简介

简述 Dojo 工具包包含了 Web 开发中的常用 JavaScript 工具。Base dojo.js 提供了绝大部分 web 开发都需要的 '必备' API,并提供秉承 "use at will" 哲学的大量实用工具。Dojo 是完全免费的,有 AFL 和 new-BSD Open Source License 两种 License 可选。 可以点击此处下载 Dojo,...

weixin_30344131的博客 670

dojo框架的基本认识

Dojo的全称是Dojo Toolkit,始创于2004年,是当前各种蓬勃发展的JS工具包中的佼佼者。Dojo 为富互联网应用程序(RIA) 的开发提供了完整的端到端的解决方案,包括核心的 JavaScript 库,简单易用的小部件(Widget)系统和一个测试框架,此外,Dojo 的开源开发社区还在不停地为它提供新的功能。

weixin_45774558的博客 3133
上一篇: 部分Dojo常用函数简介(二)——面向对象(OO)及包机制(package system)
下一篇: 用dojo.dnd实现拖放功能
dojotoolkit
博客等级 码龄16年 1205粉丝 61原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值