##Toknot javascript 库文档 本文档为 Toknot/Admin/Static/js/toknot.js 的类参考
###1.扩展的 String 对象的函数
String.isEmail()
是否是email,是email返回true,否则falseString.isCNMoblie()
是否是中国手机号码,是返回true,否则falseString.trim()
除去字符串首尾空格String.strpos(needle, offset)
查找字符串中指定字符串,并且可以设置开始处String.ucword()
将单词首字符转换为大写String.isword()
字符串是否由字母数字组成String.ucfirst()
将字符串首字转为大写
###2.扩展的兼容对象
- Node
- console
- navigator.IE 是否是IE, 是为true, 否则false
###3.基类 TK 包含下列属性
TK.doc
等于window.document
TK.bodyNode
等于window.document.body
TK.ugent
用户代理信息TK.FIREFOX
如果用户代理是 Firefox 为 true, 否则 falseTK.WEBKIT
如果用户代理是webkit 为trueTK.IEV
IE版本,大约判断TK.Ajax
Ajax 相关对象 *TK.version
TK 版本TK.inputType
input 类型对象,该对象有如下属性:- INPUT_TEXT: 1, 普通文本框
- INPUT_PASSWORD: 2, 密码输入框
- INPUT_CHECKBOX: 3, 多选框
- INPUT_RADIO: 4, 单选框
- INPUT_TEXTAREA: 5, 大块文本输入框
- INPUT_BUTTON: 6, 普通按钮
- INPUT_SUBMIT: 7, 提交表单按钮
- INPUT_IMAGE: 8, 图片按钮
- INPUT_SELECT: 9, 列表选择框
###4.基类 TK 包含事件相关的方法
-
TK.keyDown()
键盘按下事件,该方法将返回一个对象,包含下面的方法, 参数function为事件触发的函数名TK.keyDown().esc(function)
ESC键TK.keyDown().tab(function)
TABTK.keyDown().enter(function)
EnterTK.keyDown().space(function)
Space键TK.keyDown().backspace(function)
BackspaceTK.keyDown().up(function)
方向键 上TK.keyDown().down(function)
方向键 下TK.keyDown().left(function)
方向键 左TK.keyDown().right(function)
方向键 右TK.keyDown().any(function)
任意键盘都会触发
-
TK.keyUp()
键盘弹起事件,与TK.keyDown()
类似返回类似对象,包含的方法名相同 -
TK.delKeyListener(key,type)
删除键盘事件, key为按键对应的code, 使用any时使用any 字符串 -
TK.mouseout(function, elementObject)
鼠标移出 elementObject 触发 function,多次添加不会被覆盖,会返回该事件函数索引ID -
TK.mouseover(function, elementObject)
鼠标移入 elementObject 触发 function,多次添加不会被覆盖,会返回该事件函数索引ID -
TK.mousedown()
鼠标按下事件,该方法返回一个对象,该对象包含下面的方法,参数function为事件触发的函数名,多次添加不会被覆盖TK.mousedown().left(function)
鼠标左键,会返回该事件函数索引IDTK.mousedown().right(function)
鼠标右键,会返回该事件函数索引IDTK.mousedown().middle(function)
鼠标中键,会返回该事件函数索引IDTK.mousedown().any(function)
鼠标任何按键,会返回该事件函数索引ID
-
TK.mouseup()
鼠标弹起事件,与TK.mousedown()
类似返回类似对象,包含的方法名相同,多次添加不会被覆盖,会返回该事件函数索引ID TK.delMouseEventFunction(type,idx,button)
删除注册的时间函数,type
为事件类型名:mouseout,mouseover,mousedown,mouseup
,idx
为注册函数索引ID,button
为当使用按键事件时的按键名字:left,right,middle,any
-
TK.getEventNode(e)
获取当前触发事件所在元素对象 -
TK.getFocusNode()
获取当前焦点元素对象 -
TK.delDefultEvent(e)
删除事件默认行为 TK.mousePos(e)
获取当前鼠标事件时,鼠标所在坐标, 返回类似{x : 0, y: 0}
###5.基本类 TK 包含的UI类方法
TK.createNode(tagname)
创建一个节点, 返回一个扩展后的 Element 对象TK.jsPath(idx)
返回指定顺序的JS文件路径, 如果没有给定idx,将返回最后一个JS文件路径TK.require(file,bodyEnd)
与TK.loadJSFile(file,bodyEnd)
加载一个JS文件TK.ready(function)
页面加载完成后运行 function, function不会覆盖已经存在的TK.getURIHash()
返回页面URL中的hash值TK.scrollOffset()
返回当前滚动条坐标对象,对象类似{x:0,y:0}
TK.carousel(data, obj, type,eff, cls, waitTime)
创建一个幻灯片控件,返回控件元素对象-
data
JSON 轮换元素数据,类似如下{'label' : string 该轮换项标签 'link' : string 链接URL 'img' : string 轮换项图片地址 }
obj
本控件摆放位置元素type
1为数字列表点击切换,2前进后退切换,3,文字切换,4缩略图列表点击切换eff
轮换效果, 1为渐变轮换,2滑动切换cls
控件内元素样式名前缀, 实际元素会加上以下名字:- CarouselMainBox : 控件样式
- CarouselListDiv : 展示元素清单样式
- CarouselPreDiv : 上一个按钮样式
- CarouselNextDiv : 下一个按钮样式
- CarouselCurrentSelect : 当前选中元素指示样式
waitTime
滚动间隔时间
-
TK.msgBox(msg, cls, zIndex, waitTime)
创建一个简单的具有时效性的信息控件,返回控件所在DIV对象msg
信息内容cls
信息提示控件样式zIndex
信息提示控件 z-index 值waitTime
默认3000ms,信息提示控件自动超时隐藏毫秒时间
TK.alertBox(tit, msg, func, cls, cover, zIndex)
创建一个拥有确定按钮的信息提示控件tit
控件标题信息msg
控件提示信息-
func
确定按钮后执行的操作回调函数原型样式: callbackFunciton(event, button); event : EventObject 点击事件 button : boolean 等于true
cls
控件内元素样式名前缀,内部实际会跟随以下名字:- TitleDiv : 标题栏样式
- MainDiv : 控件中间主题部分样式
- ButtonDiv : 按钮所在元素样式
cover
是否显示cover层,默认不显示,true为显示zIndex
控件 z-index 值,如果没有设置将为当前页面最上面
TK.confirmBox(tit, msg, func, cls, cover, zIndex)
创建一个拥有确定与取消按钮的信息提示控件- 参数与
TK.alertBox()
相同, 只是func 的接收参数中button值在点击取消时为false,确定为true
- 参数与
TK.inputBox(tit, msg, inputList, buttonList, cls, cover, zIndex)
创建一个具有表单功能的控件tit
控件标题信息msg
默认提示信息-
inputList
表单内input元素清单,select元素将会使用selectDiv控件替代,值为一个数组,下面为其中一个input元素:{'label' : string input元素标签 'type' : string input元素类型 'name' : string input元素name值 'value' : string input元素默认值 'cls' : string input元素直接使用样式, 内部实际会跟随以下名字: ItemDiv : input元素的上一级Div样式 ItemLabel : input元素的label元素样式 }
-
buttonList
按钮清单,这里的按钮不是button类型input标签,值为数组,下面为其中一个元素组成:{'label' : string 按钮显示名字,innerHTML值 'value' : string 按钮值,attributes属性 'cls' : string 按钮样式 'call' : string/function 按钮点击回调函数名 'url' : string 表单提交URL }
cls
控件内元素样式名前缀,内部实际会跟随以下名字:- TitleDiv : 标题栏样式
- MainDiv : 控件中间主题部分样式
- ButtonDiv : 按钮所在元素样式
- MsgDiv : 提示信息样式名
- CloseDiv : 关闭按钮样式名
cover
是否显示cover层,true为显示,默认不显示zIndex
控件z-index 值,默认在页面最上面- 返回一个扩展后元素对象,用下列方法:
box.iHide()
销毁控件box.msg(msg, cls, visibility)
显示提示信息- msg: string 提示信息内容
- cls: string 提示信息样式名
- visibility : boolean 隐藏后是否保留提示信息位置
box.submitInput(url, func, validFunc)
提交表单-
url : string 提交表单URL
-
func : function 表单提交返回回调函数,回调函数原型样式:
callbackFunciton(returnData) returnData : JSON Ajax返回数据
-
validFunc : function 表单数据检测回调函数
回调函数原型样式: callbackFunciton(formData, box) returnData : JSON 表单数据 KEY值为input name值 box : ELEMENT_NODE 控件对象 return boolean 返回false将阻止表单提交,true提交表单
-
TK.selectDiv(optionList, name, func, def, cls)
创建一个下来列表控件-
optionList
列表数据,其中一个元素类似下面:单个选项所需要的数据: {'label' : string 选项显示名 'value' : mixed 选项值 'disabled' : boolean true时该项不可选,默认可选 }
name
控件在表单内的name值func
更换选择项后回调函数,可选,回调函数原型样式:callbackFunciton(value),value为选择的值def
默认项数据, 数据样式与optionList单项一样,可选cls
控件内元素样式名前缀,内部实际会跟随以下名字:- DefDiv : 当前显示项外层样式
- DefOption : 当前显示项样式
- SelectOptionDiv : 下拉列表层样式
- Selected : 下拉列表中选中项样式
- OptionDisable : 不可选项样式
- OptionMouseOver : 鼠标移动到选项上时样式
-
-
TK.pageShowSize()
获取当前浏览器可视区域尺寸, 返回类似{h: 0, y: 0}
-
TK.getOpacityStr(num)
获取兼容性透明度设置样式 -
TK.showPageCover()
显示一个遮照层 -
TK.hiddenPageCover()
隐藏遮照层 -
TK.drawRect(x, y, w, h, color)
画一个矩形 TK.drawLineTrends(style, initData, padding)
创建基于canvas 元素的趋势图表
###6.其他
-
TK.setCookie(cn, v, ex)
设置cookie值 -
TK.getCookie(cn)
获取一个cookie 值 -
TK.getFormInputData(frm, disable_no_name)
获取指定元素对象所包含的所有input或相关表单数据 -
TK.submitForm(ele, callFunc, validFunc)
自动提交表单,本方法只能提交form标签表单 -
TK.time()
获取当前时间戳,1970-1-1 00:00:00 到当前的秒数 -
TK.repeat(str, n)
重复一个字符串 -
TK.preZero(num, bit)
添加前导零 -
TK.date(time, cache)
获取 YYYY-mm-dd HH:ii:ss 格式时间, 如果设置time,将获取该时间的日期,如果cache为true,每次调用将只更新一秒的时间 -
TK.rand()
获取一个10位数的随机数 -
TK.localDate()
获取 YYYY-mm-dd HH:ii:ss 格式本地时间 -
TK.$(element)
扩展Element对象方法, 如果全局范围内没有定义 windows.$, 将会创建 window.$ 并指向本方法,详细见 第7大类
###7. TK.$(element) 和 $(element) 方法 element 参数形式如下:
- 以
.
开头是样式名 - 以
@
开头是标签名 - 以
%
开头是标签name属性名 - 不以上面的开头的字符串是元素ID名
- 也可以是Element对象
- 如果是数组,数组的每一个元素必须是Element对象
本方法将返回一个扩展后的Element对象,该对象除拥有DOM默认定义的Element对象外,还拥有下面的属性或方法:
- 属性
TK.$(element).inputType
如果元素是input标签,将有此属性,值根据input标签type属性决定,等于TK.inputType
属性定义TK.$(element).tag
小写的标签名
- 方法
TK.$(element).getIframeBody()
获取iframe标签内嵌HTML页面的Body对象,element为iframe标签的相关值-
TK.$(element).getPos()
获取元素的坐标信息,返回一个对象,如下{ x:0, //横向坐标 x:0, //纵向坐标 w:0, //宽度 h:0, //高度 }
-
TK.$(element).copyNode(deep)
复制一个标签, deep 为是否递归复制 -
TK.$(element).getNodeByCls(cls)
根据样式名找子元素,返回一个数组 -
TK.$(element).getChildNodeByAttr(attr,value)
根据指定属性及属性值找子元素,返回一个数组 -
TK.$(element).getParentNodeByAttr(attr,value)
根据指定属性及属性值找上级元素,最多查找到body -
TK.$(element).getParentByClass(cls)
根据指定样式找上级元素,最多查找到body -
TK.$(element).getFirstNode()
获取第一个 ELEMENT_NODE 子元素,忽略文本或注释等节点 -
TK.$(element).getLastNode()
获取最后一个 ELEMENT_NODE 子元素 -
TK.$(element).isNodeChild(parentNode)
检测当前元素是否是参数指定元素的子元素,是返回true,否则false -
TK.$(element).unshiftChild(new_node)
在第一个子元素前插入一个新节点 -
TK.$(element).getParentNodeByTag(tagName)
根据标签名查找上级元素,最多查找到body -
TK.$(element).getSubNodeByTag(tagName)
根据标签名查找子元素,返回一个数组 -
TK.$(element).hasClass(cls)
检查是否有指定样式名 -
TK.$(element).removeClass(cls)
移除指定样式名 -
TK.$(element).replaceClass(oldCls, newCls)
替换指定样式为新样式 -
TK.$(element).addClass(cls)
添加一个样式名 -
TK.$(element).setClass(cls)
设置样式名,会替换原有所有的样式 -
TK.$(element).setCss(value)
设置style属性值,会替换原有所有style值 -
TK.$(element).getStyle(ns)
获取元素style属性中指定名字的样式值 -
TK.$(element).convStyleName(ns)
将style中的样式名转换为JS style 对象的属性名格式 -
TK.$(element).setStyle(ns, value)
设置一个style样式值 -
TK.$(element).setOnTop()
绝对定位时,让元素位于顶部 -
TK.$(element).setZIndex(idx)
设置元素z-index值 -
TK.$(element).nextNode()
元素下一个 ELEMENT_NODE 元素节点 -
TK.$(element).previousNode()
元素上一个 ELEMENT_NODE 元素节点 -
TK.$(element).delListener(e, call_action)
删除指定事件 TK.$(element).addListener(e, call_action)
添加事件,本方法在JS原生相关函数上增加了以下事件支持:- scroll 页面滚动事件
- resize 页面尺寸改变时间
- load 页面加载事件
- 对于注册的匿名函数将会拥有
eventId
属性与clear()
方法,通过在匿名函数内部调用this.clear()
来清除本次注册事件
-
TK.$(element).getChilds()
获取所有子节点,只会获取 ELEMENT_NODE 节点,并且递归获取所有子节点的子节点 -
TK.$(element).submitForm(func, enter)
让节点具备提交 form 表单的功能, 参数 func 为表单 Ajax 提交后的回调函数,具体见TK.submitForm()
, enter参赛为是否激活 Enter 按键提交 -
TK.$(element).toCenter(eff, spec)
让元素对象居中,eff为1时平滑移动,否则瞬间移动到指定位置,spec为true标识是否在页面滚动时居中 -
TK.$(element).mousePop(e)
元素跟随鼠标,此方法需要用作鼠标事件触发时 TK.$(element).byNodePop(byObj, direct)
元素跟随指定对象, direct可以为以下值:- 1 位于下侧靠左
- 2 位于下侧靠右
- 3 左侧居上
- 4 右侧居内
- 默认位于右侧居上
TK.$(element).maxImg(cls, bsrc,altShow, altClose)
放大图片,点击本元素后会方法指定图片,点击放大后的图片会关闭放大效果,参数说明:- cls 为图片放大后的图片标签的样式
- bsrc 为需要方法的图标标签对象,如果为false,将为当前元素
- altShow 未当前元素的 title 提示信息,比如为点击放大
- altClose 未放大后的图片 title 提示信息,点击关闭
-
TK.$(element).toPos(x, y)
将元素移动到指定坐标 -
TK.$(element).move(down, spec)
元素可移动,down为鼠标按下该元素时可移动,spec为只能在该元素范围内移动, 当调用本函数后,即激活了元素的可移动属性 -
TK.$(element).maxsize(spec, part, type)
双击时放大对象,spec为只能放大到该元素范围,part为点击对象,type为true时为单击,否则为双击 -
TK.$(element).resize(sens, spec)
使元素可修改尺寸,spec为只能在该元素范围内,sens为鼠标灵敏度 -
TK.$(element).close(spec)
隐藏元素,spec为点击该元素隐藏 -
TK.$(element).hide(visibility)
隐藏元素,visibility为隐藏后是否保留位置 -
TK.$(element).show(visibility)
显示元素,visibility为隐藏后是否保留位置 -
TK.$(element).destroy()
销毁本元素 -
TK.$(element).getCursorOffset()
获取当前输入区,光标偏移量 TK.$(element).setCursorOffset(offset, start)
设置光标偏移量
###8.TK.Ajax 对象
- 属性
TK.Ajax.dataType
设置返回的数据类型,值可能为text, json, xmlTK.Ajax.charset
设置返回的数据编码TK.Ajax.waitTime
超时时间,单位:毫秒TK.Ajax.messageNode
为Ajax显示状态信息的节点-
TK.Ajax.messageList
为Ajax各个状态时的信息, 格式如下{ start: '', //开始时 complete: '', //完成时 still: '', //持续进行时 current: '' }
- 方法
TK.Ajax.get(url, callFunc)
GET方法请求TK.Ajax.post(url, data, callFunc)
POST方法请求TK.Ajax.head(url,callFunc)
HEAD方法请求TK.Ajax.put(url, data, callFunc)
PUT 方法请求TK.Ajax.options(url ,callFunc)
OPTIONS 方法请求TK.Ajax.del(url,callFunc)
DELETE方法请求TK.Ajax.trace(url,callFunc)
TRACE方法请求TK.Ajax.file(formObj, callFunc)
上传文件,formObj 为 ELEMENT_NODE 上传文件表单TK.Ajax.jsonp(url,callFunc)
JSONP请求, 服务器端只需要输出调用TK.Ajax.callback(reData)
的 js 即可