2013-08-19 89 views
2

我有一個名爲Fact的按鈕。我想在有人點擊時顯示一條消息。我的HTML看起來像這樣:用按鈕單擊切換/觸發消息顯示

<div id="option"> 
<button data-bind="click: displayMessage">Fact</button> 
<div data-bind="if: displayMessage">You are right.</div> 

我的JavaScript是這樣的:

ko.applyBindings({ 
    displayMessage: ko.observable(false) 
}); 

但是,這是行不通的。有人可以幫忙嗎?

回答

4

您應該將函數傳遞給click binding,它將displayMessage設置爲true,並且您應該使用visible binding

<div id="option"> 
<button data-bind="click: function() { displayMessage(true); }">Fact</button> 
<div data-bind="visible: displayMessage">You are right.</div> 
+0

@Jeroen感謝。大約2周前只使用了幾個小時的淘汰賽。我認爲點擊綁定可能需要一個功能,但後來我認爲這是過多的樣板代碼淘汰賽。沒想到要使用匿名函數。 – basher

+0

它仍然無法正常工作。你能提供它的JavaScript,我想重新檢查它。 – narcissi

+0

來自Jeroen - http://jsfiddle.net/8nXgs/ – basher

1

HTML:

<div id="option"> 
<button data-bind="click: toggle">Fact</button> 
<div data-bind="visible: displayMessage">You are right.</div> 


JS:

var model = function(){ 
    var self = this; 
    self.displayMessage = ko.observable(false); 
    self.toggle = function(){ 
     self.displayMessage(!self.displayMessage()); 
    }; 
}; 
ko.applyBindings(new model); 

演示:http://jsfiddle.net/Jorgelig/43fca/