簡體   English   中英

我如何只用一個數據綁定調用2個函數?

[英]How could I call 2 functions with only one data-bind?

我試圖使2個函數僅運行到一個數據綁定中,但是我遇到了一些問題,因為其中一個函數正在HTML內運行,並且我無法更改。 我有谷歌這個問題,並得到:

click:function(key){text: text}, click:callFunction()

但這是行不通的。 第二次單擊綁定有效,但第一個沒有。

這是我的按鈕:

<button data-bind="attr: {for: 'CC-prodDetails-' + $data.value}, text:key, 
                                                click:function(key){
                                                    $parent.selectedOption(key);
                                                    $parent.selectedOptionValue(key);
                                                }" class="volt"></button>

這是我需要運行的功能:

            changeClass: function () {
            $("button.volt").toggleClass('voltActive');
        },

有人可以幫我嗎? 不能將HTML函數放到另一個函數中或將其更改為JS。

通過將JS函數包裝在HTML函數中,可以同時調用HTML函數和JS函數。 提供給HTML函數的第一個參數是當前綁定模型:

 ko.applyBindings({ myJsFunction: function() { console.log('JS function called'); } }); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script> <button data-bind="click: function(model) { console.log('HTML function called'); model.myJsFunction(); }">Click me</button> 

您不能只使用css綁定嗎?

<button data-bind="
    attr: { for: 'CC-prodDetails-' + $data.value },
    text: key, 
    click: function (key) {
        $parent.selectedOption(key);
        $parent.selectedOptionValue(key);
    },
    css: {
        'voltActive': $parent.selectedOption() === key,
        'volt': $parent.selectedOption() !== key
    }"></button>

或在3.5中引入的class綁定:

class: $parent.selectedOption() === key ? 'voltActive': 'volt'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM