鍍金池/ 問答/網(wǎng)絡(luò)安全/ knockout js 頁面加載的時(shí)候自動(dòng)執(zhí)行 click

knockout js 頁面加載的時(shí)候自動(dòng)執(zhí)行 click

 <ul class="dropdown-menu color-menu" aria-labelledby="colorLabel" data-bind="foreach: $parent.colors">
     <li data-bind="attr: { class: color },event: {click: $root.changeColor($parent.id,color)}">&nbsp</li>
 </ul>
 
 
   var SettingModel = function () {
       self.colors = ko.observableArray([
            { color: 'bg-green' },
            { color: 'bg-red' },
            { color: 'bg-yellow' },
            { color: 'bg-aqua' }
        ]);
        
         self.changeColor = function (id, color) {
             console.log(id() + "|" + color)
         }
   }
   

在頁面加載的時(shí)候會(huì)自動(dòng)執(zhí)行click,每個(gè)元素對(duì)應(yīng)的li元素都執(zhí)行一遍changeColor。不是應(yīng)該點(diǎn)擊了之后再執(zhí)行嗎?

回答
編輯回答
情未了
click: $root.changeColor()

后面加了 () 就會(huì)執(zhí)行……

若果要實(shí)現(xiàn)帶參數(shù)的方法,可以考慮匿名的寫法。

 <li data-bind="click: function() { $root.changeColor($parent.id,color)},attr: { class: color } ">&nbsp;</li>
2018年9月13日 03:06