jQuery MiniUI
标题:
doValueChanged触发问题
[打印本页]
作者:
shixiaoyan0612
时间:
2021-6-28 16:21:49
标题:
doValueChanged触发问题
循环触发doValueChanged;打印顺序是a,b,0,1,并非是a,0,b,1,怎么才能边塞值边触发valuechanged方法?
<input class="mini-combobox" id="a" style="width:150px;" textField="text" valueField="id" showNullItem="true" allowInput="true"/>
<input class="mini-combobox" id="b" style="width:150px;" textField="text" valueField="id" showNullItem="true" allowInput="true"/>
var aiCommon=["a","b"];
$.each(aiCommon,function(index,porp){
var mini_obj = mini.get(porp);
mini_obj.setValue(aiFormJson[porp]);
console.log(porp);
mini_obj.doValueChanged();
})
mini.get("a").on('valuechanged',function(e){
console.log(0);
})
mini.get("b").on('valuechanged',function(e){
console.log(1);
})
作者:
happylover1278
时间:
2021-6-28 17:16:54
valuechanged事件是异步的,循环结束才会执行
要不试试递归?
mini.get("a").on('valuechanged', function (e) {
a_valuechanged()
})
mini.get("b").on('valuechanged', function (e) {
b_valuechanged()
})
var aiCommon = ["a", "b"];
var aiFormJson = { 'a': 1, 'b': 1 }
var num = 0
var num_max = aiCommon.length - 1
events()
function events() {
if (num > num_max) return
var mini_input = mini.get(aiCommon[num])
console.log(aiCommon[num])
mini_input.setValue(aiFormJson[aiCommon[num]])
eval(aiCommon[num] + `_valuechanged(
function (fn) {
num = num + 1
events()
}
)`)
}
function a_valuechanged(fn) {
console.log(0)
if (fn) fn()
}
function b_valuechanged(fn) {
console.log(1)
if (fn) fn()
}
复制代码
或者自己写事件队列
作者:
shixiaoyan0612
时间:
2021-6-29 10:52:55
谢谢。
onvaluechanged是已有的,每个页面的下拉都是独立方法,不能改动。我是写的一个通用功能,去塞不同页面上的这种级联下拉,这个地方我只做塞值和手动触发下valuechanged的动作
作者:
哎呀
时间:
2021-6-29 15:39:55
shixiaoyan0612 发表于 2021-6-29 10:52
谢谢。
onvaluechanged是已有的,每个页面的下拉都是独立方法,不能改动。我是写的一个通用功能,去塞不同 ...
只能直接调用 onvaluechanged触发的方法! 如果每个页面的不一样,你得写个公用方法了!
欢迎光临 jQuery MiniUI (http://miniui.com/discuss/)
Powered by Discuz! X2