在 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; }); }