鑑於下面的情況,有必要使用ko.utils.domNodeDisposal.addDisposeCallback
來解除綁定自定義綁定處理程序init內部的單擊事件?或者Knockout有它自己的機制來自動處理/解除在自定義綁定處理程序中創建的事件?是否有必要在Knockout自定義綁定中解除綁定/關閉JQuery點擊事件?
例子:
<li>
<a id='aTagId' data-bind='something'></a>
<button data-bind: myCustomBinding:{}>
</li>
ko.bindingHandlers.myCustomBinding=
{
init: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext)
{
$('#aTagId').on('click', function() { /*something in here*/ });
// Is this code necessary?
ko.utils.domNodeDisposal.addDisposeCallback(element, function()
{
$('#aTagId').off('click');
});
}
}
注:請不要問我爲什麼,我不能只是把myCustomBinding
在<a>
標籤:)
這個答案道理給我。我試圖在addDisposeCallback中找到click事件,但即使''標籤仍然存在,也找不到該事件。謝謝! – jtabuloc