在 bootstrap 和 knockout 共同存在下使用 select 下拉选择插件,发现绑定选项、赋值之后插件不可用了,绑定的监听事件也丢失了。迫不得已在绑定选项值之后再次调用刷新,以及赋值后重新绑定监听。不知哪位大神有更好的方式解决,求留言。。。。。。
$.post('/cpms/cpms/api/getProjectList', data).done(function(result) {
if(typeof(result) == "string"){
result = JSON.parse(result.data);
}
if(result.data.rows){
viewModel._helper.projectCodes(result.data.rows); //绑定下拉选项
$('.selectpicker').selectpicker('refresh');//刷新插件
}
}).fail(function (err) {
return '';
})
//为插件赋选中值
$('#PROJECT_NAME_SELECT').selectpicker('val',taskData.PROJECT_CODE);
// $('#PROJECT_NAME_SELECT').selectpicker('refresh');//重新刷新不好使
// $('#PROJECT_NAME_SELECT').selectpicker('render');//也不好使
//重新绑定监听
initChange(taskData.PROJECT_CODE);
……
function initChange(projectCode){
$('#PROJECT_NAME_SELECT').on('changed.bs.select', function(e) {
if(e.target.value){
var project = viewModel._helper.projectCodes().filter(function(item) {
return item.projectCode === e.target.value;
});
}