bootstrap 的 switch 按钮初始化问题

问题描述 :

  不管使用标签 input的 checkbox 生成switch按钮还是使用 js 的 bootstrapSwitch 函数 , 初始化按钮状态始终是关闭的

  (这里我使用的是 bootstrap-switch.js 版本 v3.3.4 , bootstrap-switch.min.js 好像没有这个问题)

解决方案 :

 

  跟踪一下源码 , 下面第七行的 prvcontainerPosition.call(_this3); 这句话出现了问题 (源码中大概 162 行)

 1   function prvinit() {
 2     var _this3 = this;
 3 
 4     var init = function init() {
 5       _this3.setPrevOptions();
 6       prvwidth.call(_this3);
 7       prvcontainerPosition.call(_this3);
 8       //... ... 9   }

该方法 prvcontainerPosition 中的 state 获取结果为 undefined

function prvcontainerPosition() {
    var _this2 = this;
    var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.ope;
    //... ...
  }

 修改代码如下 , 传递参数 state 

  function prvinit() {
    var _this3 = this;

    var init = function init() {
      _this3.setPrevOptions();
      prvwidth.call(_this3);
      var state = _this3.prevOptions.state ;
      prvcontainerPosition.call(_this3,state);
     // ... ...
  }

 

posted on 2018-11-06 14:19  hi-gdl  阅读(518)  评论(0编辑  收藏  举报

导航