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