jQuery MiniUI

标题: 如何重写miniui控件的属性和方法? [打印本页]

作者: wanfengbuyue    时间: 2017-11-3 13:34:36     标题: 如何重写miniui控件的属性和方法?

例如我想全局修改 TextBox 的validateOnChanged属性为false,(不考虑业务需求,只从技术方面),请问这个该如何实现,miniui有没有统一的扩展控件方法、属性,或者重写方法属性的说明?

作者: dforce    时间: 2017-11-3 14:02:58

mini.TextBox.prototype.validateOnChanged=false
作者: wanfengbuyue    时间: 2017-11-3 14:20:53

dforce 发表于 2017-11-3 14:02
mini.TextBox.prototype.validateOnChanged=false

mini.Panel.prototype.expanded=false;为什么不起作用?
作者: dforce    时间: 2017-11-3 16:38:43

wanfengbuyue 发表于 2017-11-3 14:20
mini.Panel.prototype.expanded=false;为什么不起作用?

默认都是打开的,所以这属性在初始化的时候并没有用,是设置了false之后才在set环节生效的。
可以这样注入的方式修改
(function () {
    var set = mini.Panel.prototype.set;
    mini.Panel.prototype.set = function () {
        this.setExpanded(false);
        set.apply(this, arguments);
    }
})();

作者: wanfengbuyue    时间: 2017-11-3 17:07:53

本帖最后由 wanfengbuyue 于 2017-11-3 17:13 编辑
dforce 发表于 2017-11-3 16:38
默认都是打开的,所以这属性在初始化的时候并没有用,是设置了false之后才在set环节生效的。
可以这样注 ...

收起来的效果不能和点击收起来的效果一样吗?怎么有这么大的空白。
作者: wanfengbuyue    时间: 2017-11-6 13:56:40

dforce 发表于 2017-11-3 16:38
默认都是打开的,所以这属性在初始化的时候并没有用,是设置了false之后才在set环节生效的。
可以这样注 ...

在panel下面有其他控件的时候,用上面的方法,两个控件之间有第一个panel的高度空白
作者: wanfengbuyue    时间: 2017-11-8 11:40:01

dforce 发表于 2017-11-3 16:38
默认都是打开的,所以这属性在初始化的时候并没有用,是设置了false之后才在set环节生效的。
可以这样注 ...

版主大神,帮忙解决一下这个问题
作者: felt    时间: 2017-11-8 13:14:22

wanfengbuyue 发表于 2017-11-8 11:40
版主大神,帮忙解决一下这个问题

panel的expanded只能生成完之后作用,
var panels=mini.findControls(function(control){
   if(control.type=="panel") return true;
})
$(panels).each(function(i,item){
    item.setExpanded(false);
})
作者: wanfengbuyue    时间: 2017-11-8 16:09:22

felt 发表于 2017-11-8 13:14
panel的expanded只能生成完之后作用,
var panels=mini.findControls(function(control){
   if(control. ...

好吧,这样效果和效率肯定不好啊,在页面控件创建后把所有的控件遍历一般啊
作者: felt    时间: 2017-11-8 18:00:35

wanfengbuyue 发表于 2017-11-8 16:09
好吧,这样效果和效率肯定不好啊,在页面控件创建后把所有的控件遍历一般啊 ...

panel一般就是写单独写expanded来控制的,一般是不会全部控制的。
作者: wanfengbuyue    时间: 2017-11-8 18:02:32

felt 发表于 2017-11-8 18:00
panel一般就是写单独写expanded来控制的,一般是不会全部控制的。

项目上线了,现在要默认收起的,而且以后有可能还改回来,不能挨个改过来,再改回去啊
作者: felt    时间: 2017-11-9 09:49:10

wanfengbuyue 发表于 2017-11-8 18:02
项目上线了,现在要默认收起的,而且以后有可能还改回来,不能挨个改过来,再改回去啊 ...

那就先用遍历的方法来控制吧。这个查找开销不大的。




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2