查找淘汰賽元素我有淘汰賽渲染一些元素:通過jQuery選擇
<div class="chart" data-bind="attr: {'data-chart-id': id}"></div>
然後,我希望通過數據屬性來查找jQuery的元素:$("[data-chart-id='1']")
但是,當我這樣做是在模型中,該模型的data-chart-id
尚未分配。
如何處理?
查找淘汰賽元素我有淘汰賽渲染一些元素:通過jQuery選擇
<div class="chart" data-bind="attr: {'data-chart-id': id}"></div>
然後,我希望通過數據屬性來查找jQuery的元素:$("[data-chart-id='1']")
但是,當我這樣做是在模型中,該模型的data-chart-id
尚未分配。
如何處理?
您可以使用setTimeout的等待綁定完成或寫custom binding:
HTML:
<div class="chart" data-bind="customAttribute: {chartId: id}"></div>
JS:
ko.bindingHandlers.customAttribute = {
init: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
var value = ko.utils.unwrapObservable(valueAccessor().chartId);
$(element).attr('chartId', value);
// then you can write your jquery code here
}
};
這是編寫自定義綁定的非常好的解決方案。謝謝! – Kir