1、quick search。
接触到了checkbox多选。难点在于只要label和checkbox的触发。只要定于checkbox的事件就够了。
2、申报情况(简历)编写。
难点在于修改之后立即重新渲染。所以写了一个渲染的方法。拿最新和数据渲染,和首次加载的渲染及新增修改的渲染是同一个函数。变量是数据。
这是我觉得最有技术难度的项目。
因为每个表有很多项。每个项里面有可以有多条。每个条里面有好多字段。就跟简历一样。
这些字段如何排序?我并不是在html中默认排序好的,因为我知道,万一我想改变其中某一个次序的话,去搬动芸芸html是很弱智的行为。于是我把这些字段整合成对象。优点:我只要改变对象里面的数据顺序,结果自然会改变。不用管html长啥样。清晰,快速。我只要遍历这个数组就可以把字段按序显示出来。
。 难点二是:特殊字段。普通字段我可以直接出文字,但是不是所有选项都是input输入框。比如select,有很多相同名称的字段,于是写了一个声称option list string的函数。只要传字段名就可以得出该select。减少了大量重复工作。对了,select的设值也是直接.val();
另外一个是 dateTime输入框和textearea输入框。区别对待。
难点三:想用table实现数据展示,且偶数个字段在一行,那如果该项有奇数个字段怎么办。分2种情况处理。想要第一行只显示一个,其他行显示偶数个的:那就先处理第一行数据firstLineStr,然后unshift()第一个字段,整合剩余的字段,然后最后firstLineStr+剩余字段。想要最后一个显示奇数的:pop()最后一个字段,整合前面的字段,最后相加。
难点四:新增条目也是才有数据渲染的函数。所以这个函数得写得很强大。
难点五:打印预览。觉得很实用的经验。如果有大量的数据,如何传给一个新页面。解决:把数据传给一个的form表单,然后提交表单。要点是:给form设置target="name your want to open"。window.open(" '',"name your want to open")
小要点:is() not() on() scroll() keydown()
3、统计结果查询。
难点一:生成excel。难点在于生成excel:只有ie能生成excel,因为它有Xactvity控件,调用对应的代码就可以了。如果系统没装word是没反应的,如果装了之后还是没反应,就到工具->Internet选项->安全->自定义级别->对没有标记安全级别的ActiveX控件进行初始化
难点二:联动查询。当你选择大部门的时候,大部门的小部门们必须全部勾选上。只需要给小部们包上一层,赋一个与大部关联的属性就可以了。联动判断则是判断所选个数是否等于小部总数。
难点三:href="javascript:func(param)"的确是可以当成οnclick="javascript:func(param)的效果用,但是,当你想获取触发函数的节点使用param=this的时候,href的this指得是window,所以此时不能用href。
4、考勤配置。
收获点:select的多行显示只需设multiple参数即可。获取被选中的option只需 option:selected。补充说明同类用法,option:first option:last
5、图库。
之前练过3次图片展示。貌似只有这次是写得比较能看的。不用计算图片距离。主要是参照了企鹅的图库设置了imgindex。巨方便。看来tab之流的可以这样子用,之前我一直是用name来标识。
poisition().left一般是对绝对定位管用。如果父元素设置了margin-left值,如果父元素设置了margin-left就不一定管用了。
offset().left是子元素相对于父元素的值。
6、整个信息模块的js代码。
善用push和pop。
form.serializeArray
$.post() tradition:true
dataType:json
7、判断页面是否滚到某个位置。
offset().top
document.documentElement.clientHeight
document.documentElement.scrollTop||document.body.scrollTop