@yacent
2016-07-22T09:40:45.000000Z
字数 1111
阅读 937
网易|前端|总结
问题描述:
在原本的nav-bar当中,为了尽可能小的修改原本的DOM结构,并且减少逻辑的复杂性,原本以前实现下拉菜单大多使用类似bootstrap | semanticUI 等自封装好的UI库来进行编写。由于下拉菜单不复杂,顾自己用CSS去实现一个了,好处也是有的,执行效率高,无需考虑客户端是否禁用了JS
解决:
1. 调整好下拉列表的位置,默认不可见
2. 对div hover的时候,下拉列表课件
具体代码如下:
http://codepen.io/yacent/pen/XKkkro
data格式的Url最直接的好处是,这些Url原本会引起一个新的网络访问,因为那里是一个网页的地址,现在不会有新的网络访问了,因为现在这里是网页的内容。这样做,会减少服务器的负载,当然同时也增加了当前网页的大小。所以对“小”数据特别有好处
codepen dist: https://codepen.io/yacent/pen/akqayq
即将string的html代码,转换成node节点,因为一开始是苦恼于需要将最外层的单独出来, createElement(),想着还是封装一个函数,实现string 2 html,代码主要如下
function html2node(_html) {
var _div = document.createElement("div");
_div.innerHTML = _html;
var _list = _div.children;
return _list.length>1?_div:_list[0];
}
问题描述:
在js代码当中获取DOM,对DOM进行相对应的操作的时候,有时候会经常看到,* null,即没有获取到
解决:
1. 用jst模板的时候,一定要在模板内容渲染完之后然后进行获取dom元素
2. 要给模板上的元素绑定事件时,一定要动态的进行绑定,即通过onclick等写在标签上,来进行事件地动态绑定,亦或者可以通过渲染完模板之后,通过DOM2事件绑定机制来对元素进行相关的事件绑定
问题描述:
在进行事件绑定时,因为用了匿名函数进行事件的绑定,结果会发现调用的类当中的函数会变成undefined。
解决:
充分了解this作用域的问题,当在函数当中使用到this的时候,一定要注意当前调用的对象的this所存在的作用域,指向的对象是谁,如果不确定,最好每个函数都是通过bind来进行作用域的绑定。
写css文件的时候,最好是插入 字符编码的方式 @charset "urf-8";