2015-08-31 5 views
1

У меня есть кнопка, подсказка которой обновляется при включении/отключении. Но его нет. Вот привязка js и html. Когда я использую init, это не так, но когда я использую его обновление, но затем clickHandlers вызывается несколько раз. Я использую нокаут и бутстрап.data-title не обновляется на кнопке tooltip

<button class="btn btn-primary" type="button" 
      id="displaySubmitBtn" data-bind="formSave: {text: isFormComplete() ? '' : missingRequiredTooltip, enable: isFormComplete, click: submitEstimateFromDisplay}, 
      text: bundle.submit_button_label, visible: isSubmitVisible" 
      data-placement="bottom" data-backdrop="true"> 
    </button> 


ko.bindingHandlers.formSave = { 

     init: function (el, valueAccessor) { 
      var $el = $(el), 
       saveEnabled = valueAccessor()['enable'], 
       text = _.isFunction(valueAccessor()['text']) ? valueAccessor()['text']() : valueAccessor()['text'], 
       placement = _.isString(valueAccessor()['placement']) ? valueAccessor()['placement'] : 'bottom', 
       container = _.isString(valueAccessor()['container']) ? valueAccessor()['container'] : 'body', 
       clickHandler = valueAccessor()['click']; 

      var enabler = function (enabled) { 
       // not using $el.prop('disabled') on purpose so BS tooltip will show 
       if (enabled) { 
        // enable the button 
        $el.removeClass('disabled'); 
        $el.attr('data-title', undefined).tooltip('destroy'); 
       } 
       else { 
        $el.addClass('disabled'); 
       } 

       $el.attr('data-title', text); 

       $el.tooltip({ 
        //title: text, 
        placement: placement, 
        container: container 
       }); 

      }; 

      // call enabler to disable/ enable button and assign tooltip 
      enabler(saveEnabled()); 
      // enabler listens to the computed method on button getting enabled/diabled 
      saveEnabled.subscribe(enabler); 

      $el.on("click", function (evt) { 
       if (!$el.is('.disabled')) { 
        $el.attr('data-title', undefined).tooltip('destroy'); 
        if(clickHandler) { 
         clickHandler(evt); 
        } 
       } 
       else { 
        evt.preventDefault(); 
        return false; 
       } 
      }); 
     } 
    }; 
+0

вы должны установить «название» атрибут, а не «данные-название» – dansasu11

+0

Названия не работает, поэтому я использовал данные титул – Geeky2012

ответ

1

Вы должны быть установкой атрибута title, не data-title

+0

названия Безразлично» т работы – Geeky2012

Смежные вопросы