chriswong / zxui Goto Github PK
View Code? Open in Web Editor NEW知心项目UI组件库
知心项目UI组件库
有可能导致参数数据被截断。
改成jsonToQuery(data, encodeURIComponent) ?
应 PM 需求需要增加多列支持,同时增加选中项状态。
popup的triggers属性为样式名。但只在初始化(init)方法中处理了当前DOM树中拥有指定样式名的DOM元素。对后续加入DOM树的带有指定样式名的DOM元素无效。应当采取代理模式支持后续生成的triggers。
原因是默认 render 后 dom 已经 append 到 body,但未设置 top,根据 position: absolute 的定位规则,top 的值会是静态定位时的计算结果
zxui 的定位是一套比较简单好用的组件,那么很多跟实现相关的逻辑就不应该调用者去关心,比如怎么触发显示,触发谁显示,相对谁定位等等。
select 一般有两种定位:
如果不考虑 IE67,我觉得最好的方式是 2。
具体怎么实现都没关系,这是组件内部的逻辑。
select 最常用的场景就是弹出一个一维列表,我觉得 90% 以上的场景都是这样的。至于那种点击弹出一个面板,面板里的内容无法预计,所以只能提供一个元素的配置项。
对于最常用的场景,完全可以提供一个 datasource 配置,这样创建 select 就是简简单单的一句代码
new Select({
main: $('select')[0],
datasource: [
{ text: '', value: '' }
]
}).render()
grunt jsdoc 生成报错
直接 jsdoc 可生成,但缺少 options
Calendar内部使用popup对象作为浮层。但popup在hide时,没有将hide事件传递给Calendar。使用者即使给Calendar添加onHide事件回调函数也无法被触发。
现在需要额外的变量记录TIP是否正在显示。
建议添加一个isShowing的方法。
原因是 T.url.jsonToQuery 默认只对部分部分字符作编码转换,需要为 T.url.jsonToQuery 传第2个参数处理
默认的CalendarA元素不包含其他的DOM标签。自定义样式中可以通过process方法添加。而自定义样式中的DOM元素被点击时,不能被Calendar正确处理。
原因是onClick事件的处理只针对事件源DOM元素tagName为A时做处理,其他标签只对target做select。
现在更新TIP内容需要设定content属性然后再show。show中做了很多不需要的工作。
建议添加setContent和setTitle方法
liveTriggers被点击之后,不区别真正被点击的DOM是否为triggers,直接释放了onBeforeShow事件。
name
变量名笔误写成了 nane
. 所有分支均存在此bug.
点此查看master分支
点此查看tangram-less分支
if (target.tagName !== 'A') {
var main = this.main;
target = T.dom.getAncestorBy(target, function (el) {
// 最高访问到控件根容器, 避免到文档根节点
return el.tagName === 'A' || el === main;
});
if (target === main) {
return;
}
}
如果点击事件发生在容器上,那么el === main 是不成立的。
这是target就会是null,然后执行下面的target.getAttribute是会报错。但是不影响使用。
根据需求,需要:
Calendar的process方法可以接受el, classList和dateString三个参数。其中el是当前展现的月份的日期DOM(就是A)。但是展现的月前日期DOM和月后日期DOM都不会被触发process处理。
由于显示和隐藏都对应相同的 click 事件,导致显示和隐藏连续发生,表现像点击时无任何响应
if (!this.options.main) {
main.innerHTML = this.content;
}
这段代码会导致city组件指定main的时候无法正常渲染。
但是去掉这个判断之后,select自定义main则无法渲染。。
是不是可以让city组件用其他字段指定渲染区域?
根据 ubs 实现,可通过更改监听的 click 事件为 mousedown 解决
主要由于在翻月前,默认是当前月的最后一天,当第一天是周日时,导致setMonth过来是2006-2-31,由于2006-2只有28天,所以实际上是2006-3-3,再setDate(0)也是2006-2-28
主要用于重置选项,所有模拟与表单相关的组件都应该能让用户重置状态。
自动计算定位时,最终组件右边界或下边界可能会超出可视区域
init 中调用了 setRange -> updatePrevNextStatus -> date = date || this.date || this.from(this.value);
但是 this.value 的初始化在 setRange 调用之后,所以导致 updatePrevNextStatus 中 date 的值异常
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.