今天主要完成了三个功能:
- 菜单项UI
- 文件->最近打开/另存为功能演示
- git第一个版本更新
菜单项UI
首先是想用个已有的插件,去看了一下jQuery-UI中的菜单插件,感觉效果不行,然后还是打算从网站上扒一个现成的用用,扒倒是很简单,很快就可以展示了。但是有一个小小遗憾,就是菜单的宽度都是固定的,不能根据菜单内容进行自适应,这对于我来说是不能接受的。
原来的菜单展示是直接用css设置hover属性实现的,因此必须在菜单生成的时候就设置好偏移位置,直接上代码。
//css setting
.extend_menu{
position: absolute;
border-top-left-radius: 0px;
border-left: 1px solid #999;
top: -5px;
right: -162px;
display: none;
}
//set submenu to correct position with auto width.
el.find(".extend_menu").each(function(idx, item) {
var $item = $(item);
$item.css('right', (0 - 2 - $item.width()) + 'px');
});
这样就可以把固定宽度的菜单修改为根据内容自适应宽度的菜单了,当然也不建议搞太长的内容,否则展示效果不好。

菜单功能实现
这个过程没啥新鲜的,纯粹就是工作量,不过我利用了lodash里的invoke方法实现了从字符串到函数的转换,也算js中的反射机制吧。
function doAction(item) {
var action = item.attr("ac");
_.invoke(UI, 'do' + _.upperFirst(action), item);
};
上传Git
终于开始第一个版本的开发了,今天上传到了git。
网友评论