KnockoutJS で「条件付きクリック」バインディングを作成したいと思います。基本的に、これは Knockout で使用するような標準のクリック バインディングですが、添付された機能を実行するには条件を満たす必要があります。私の場合、最適なオプションは、許可されている場合は標準のクリック バインディングを呼び出すカスタム バインディング ハンドラを作成することです。
ko.bindingHandlers.safeClick = {
'init': function(element, valueAccessor, allBindingsAccessor, context) {
$(element).click(function() {
if(mycondition == true) {
// call the standard click binding here -> this is the part I don't know
}
});
}
}
標準のクリック バインディングをすべてこのカスタム バインディングに置き換えたいと考えています。したがって、HTML で提供されるすべてのパラメーターが関数に渡されるように、正しい方法でクリック バインディングを呼び出すことが重要です。例えば:
<a href="#" data-bind="click: basevm.gotopage.bind($data, '#homepage')">Home</a>
<a href="#" data-bind="click: itemvm.activateItem">Activate</a>
これらを置き換える必要があります
<a href="#" data-bind="safeClick: basevm.gotopage.bind($data, '#homepage')">Home</a>
<a href="#" data-bind="safeClick: itemvm.activateItem">Activate</a>
カスタムバインディングの足りない部分を教えていただけると助かります。