2017-06-02 57 views
0

anchor標籤取消綁定點擊後對象的單擊事件?

<a class="list-group-item" data-bind="click: $parent.onResourceTimeSelect, css: { disabled: isActive == 1 }, style: { background: isSelected == 1 ? '#ddd' : '' }"></a> 

這給了我點擊的資源的對象。

onResourceTimeSelect: function (data, e) { 

} 

data是對象。有財產isSelected,如果它的1它應該取消綁定點擊事件。

if (data['isSelected'] == 1) { 

} 

如何停止點擊事件?試用$(data).unbind('click')$(data).click(function() { return false });,他們都沒有工作。

如果我在ifconsole.log(data)它確實給我留言回來,所以我100%即時得到的if

我該如何做到這一點?

+0

基本上,如果isSelected的值爲1,您希望只能單擊該按鈕一次? – Shadowfox

+0

如果它滿足一些條件,我將'isSelected'屬性設置爲1並更改錨標記的顏色。我想要的是停止「第二次點擊」 – Denisx

回答

2
data-bind="click: isSelected == 1 ? function() {return false;} : $parent.onResourceTimeSelect, css: { disabled: isActive == 1 }, style: { background: isSelected == 1 ? '#ddd' : '' }" 

應該這樣做,它基本上把一個if放入(敲出)click處理程序中。如果值爲1,它將返回false,否則你的函數將被執行。

注意:isSelected需要是可觀察的!

+0

呃,沒想到這樣做。它的工作,謝謝。我在10分鐘內接受答案。 – Denisx

+0

不客氣。有時我們忽略了簡單的解決方案 – Shadowfox

2

我想你click處理器重新命名爲onClick和處理方法裏面不同的情況:

self.onClick = function(resourceTime, event) { 
    if (resourceTime.isSelected() === 1) { 
    return false; 
    } 

    self.onResourceTimeSelected(resourceTime); 
}; 

優點:

  • click結合值在易於閱讀和不易(語法)錯誤
  • onClick命名錶示有幾種方法來處理點擊
  • 如果您稍後要添加其他案例,您可以輕鬆地將它們添加到此處理程序中
相關問題