2015-10-06 78 views
0

我有一個javascript knockout按鈕,我想在第一次點擊後禁用3秒。Javascript knockout點擊綁定

<button type="button" class="btn btn-default btn-xs" data-bind="click: editFile"> 
    Edit 
</button> 

我已經嘗試過的JavaScript

<button type="button" class="btn btn-default btn-xs" data-bind="click: editFile, disable:disableButton"> 
    Edit 
</button> 

然後我做了這一點。完全禁用按鈕。

disableButton = ko.observable("true"); 

我也嘗試過純JavaScript,但沒有在所有的工作:

$(function() { 
    $(".btn-default").click(function() { 
     $(".btn-default").attr("disabled", "disabled"); 
     setTimeout(function() { 
      $(".btn-default").removeAttr("disabled");  
     }, 3000); 
    }); 
}); 

我嘗試以下,是由基因敲除給出的例子,但我不認爲我正確地做:

Knockout example

能有人幫我新的基因敲除和JavaScript?

回答

0

請參考下代碼片段 -

function AppViewModel() { 
 
    var _self = this; 
 
    _self.disableButton = ko.observable(false); 
 
    _self.editFile = function(){ 
 
    \t _self.disableButton(true); 
 
     setTimeout(function() { 
 
      _self.disableButton(false); 
 
     }, 3000); 
 
    }; 
 
} 
 

 
// Activates knockout.js 
 
ko.applyBindings(new AppViewModel());
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.1.0/knockout-min.js"></script> 
 
<button type="button" class="btn btn-default btn-xs" data-bind="click: editFile, disable:disableButton"> 
 
    Edit 
 
</button>

你只需要更新觀察到的真或假的啓用/禁用的編輯按鈕。

希望這會有所幫助!

+0

我曾嘗試過,並沒有奏效。我收到一條消息:「未捕獲的錯誤:您無法多次將綁定應用於同一元素。」 –

+0

運行上面的代碼片段,它爲我工作。如果您仍然收到此代碼的錯誤,請分享錯誤消息! –

+0

我知道它適用於代碼片段,但我收到一條錯誤消息:「未捕獲的錯誤:您無法將綁定多次應用於同一個元素。」 –