2013-03-19 47 views
0

我想控制一個元素(下面的小提琴代碼中的黃色框)使用3個圖像與點擊事件的可見性。它不工作。可見的綁定 - 敲除JS

我定義瞭如下可視性性能

IsSelectionPoll = ko.observable(true); 
    IsBoolPoll = ko.observable(); 
    IsRatePoll = ko.observable(); 

這裏是click事件:

SetTypeId = function (typeId) { 
    //selectPollType = typeId; 
    $('<p/>').text(typeId).appendTo('body'); 
    IsSelectionPoll = (typeId == '1'); 
    console.log(typeId); 
    IsBoolPoll = (typeId == '3'); 
    IsRatePoll = (typeId == '2'); 
} 

我用自我與本產品和許多其他的技巧嘗試,但我想不出爲什麼它不工作。

請查看這裏的代碼: http://jsfiddle.net/goldenrate/NfDyX/

感謝, 大衛

回答

1

你是不是創造了有什麼視圖模型 - 改變函數聲明:

function PollWizardViewModel(initialData){ 

,然後結合線爲:

ko.applyBindings(new PollWizardViewModel()); 

點擊綁定本身應該像以前一樣工作。

編輯:也,不重新分配你的觀測,而只是改變他們的價值觀,否則,與DOM丟失(因爲該鏈接是與被當你重新分配他們的參考discared老觀測)結合 - 例如而不是:

this.IsSelectionPoll = (typeId == '1'); 

使用:

this.IsSelectionPoll(typeId == '1'); 
+0

謝謝。你可以通過渲染結果判斷點擊綁定的效果(我添加了$('

').text(typeId).appendTo('body');),但我也根據你的建議修復了這個定義,它仍然是不工作。 – 2013-03-19 22:24:56

+0

你是對的,可觀察到的設置也有問題 - 我更新了我的答案。 – Grim 2013-03-19 23:28:25

+0

再次感謝。我在這裏應用了更改http://jsfiddle.net/goldenrate/NfDyX/12/並重組了代碼,但它不起作用。我過去做了很多次這個任務非常簡單,我無法弄清楚問題所在。 – 2013-03-20 01:25:38