2014-12-02 55 views
1

我有一個下拉菜單,點擊時應該打開一個模式對話框並關閉下拉菜單。我已經存儲了此功能中的兩個獨立的功能,比如:多個單擊綁定元素只在knockout.js中執行一個?

self.toggleDropdownVisibility = function() { 
    self.showDropdown(!self.showDropdown()); 
}; 

// and 

self.toggleModalVisibility = function() { 
    self.showModal(!self.showModal()); 
}; 

隨着我的HTML之中:

<li data-value="manage" data-bind="click: toggleModalVisibility, click: toggleDropdownVisibility"> 

的問題然而,當我使用這個語法,只執行第一函數(在這種情況下,toggleModalVisibility),如果我顛倒了訂單,則調用toggleDropdownVisibility。我如何將兩個點擊事件綁定到單個元素並讓它們都執行?

+0

看看答案爲[這個問題](http://stackoverflow.com/questions/9761457/knockoutjs-multiple-bindings-on - 點擊事件)可以幫助你。 – 2014-12-02 20:32:49

+0

@hunch_hunch已經看到它,這些答案都不起作用。 – ReactingToAngularVues 2014-12-02 20:34:01

回答

2

在您的模型中添加一個「onClick」函數,並指定您的聲明性點擊綁定,然後調用您想要從onClick函數調用的兩個函數。

的Javascript:

self.toggleDropdownVisibility = function() { 
    self.showDropdown(!self.showDropdown()); 
}; 

self.toggleModalVisibility = function() { 
    self.showModal(!self.showModal()); 
}; 

self.onClick = function() { 
    self.toggleDropdownVisibility(); 
    self.toggleModalVisibility(); 
}; 

HTML:

<li data-value="manage" data-bind="click: onClick"> 
+0

非常好,謝謝。 – ReactingToAngularVues 2014-12-02 21:04:31

相關問題