EasyUI Forum

General Category => Bug Report => Topic started by: iamjxc on September 04, 2014, 06:50:34 PM



Title: 初始化顺序的问题不太理解
Post by: iamjxc on September 04, 2014, 06:50:34 PM
<input type='text' value='1' />
<input type='text' value='2' />

方案1: 没问题
$("input").combobox({

}).combobox("setValues", ['1','2','3']);


方案2: 会报错
$("input").combobox({
   xxx
});

$("input").combobox("setValues", ['1','2','3']);

Firefox 提示: TypeError: $.data(...) is undefined

方案2里感觉 combobox 控件还没有初始化完毕, 这是为什么?


Title: Re: 初始化顺序的问题不太理解
Post by: qiangtou on September 17, 2014, 11:04:34 PM
EasyUI object must be initialized before the method call


Title: Re: 初始化顺序的问题不太理解
Post by: iamjxc on September 18, 2014, 10:23:34 PM
问题的原因就是调用 setValues 时, easyui 还没有初始化完毕.
但是为什么呢? 上面不是调用了 $("input").combobox({ }) 吗?


Title: Re: 初始化顺序的问题不太理解
Post by: qiangtou on September 22, 2014, 11:13:26 PM
it is your jQ selector 's problem.

Code:
var before=$('input');
console.log("before init:",before.length);
before.combobox({});

var after=$("input");
console.log("after init:"after.length);

//error!!!!
after.combobox("setValues", ['1','2','3']);

you will see in Console:

Code:
before init:1
after init:3

easyui generate other 2 input elements.


Title: Re: 初始化顺序的问题不太理解
Post by: gongjw123 on January 29, 2015, 07:47:14 PM
<input type='text' value='1' />
<input type='text' value='2' />

方案1: 没问题
$("input").combobox({

}).combobox("setValues", ['1','2','3']);


方案2: 会报错
$("input").combobox({
   xxx
});

$("input").combobox("setValues", ['1','2','3']);

Firefox 提示: TypeError: $.data(...) is undefined

方案2里感觉 combobox 控件还没有初始化完毕, 这是为什么?

定义combobox 但实际还没有渲染 正确地应该在定义时的onloadsuccess事件中赋初值

$("input").combobox({
   onloadsuccess:function(){
          $(this).combobox('setValue', xxx)
        }
});