2013-01-22 136 views
1

查找淘汰賽元素我有淘汰賽渲染一些元素:通過jQuery選擇

<div class="chart" data-bind="attr: {'data-chart-id': id}"></div> 

然後,我希望通過數據屬性來查找jQuery的元素:$("[data-chart-id='1']")

但是,當我這樣做是在模型中,該模型的data-chart-id尚未分配。

如何處理?

回答

3

您可以使用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 
    } 
}; 
+0

這是編寫自定義綁定的非常好的解決方案。謝謝! – Kir

1

試試這個:

$("body *[data-chart-id='1']"); 
+0

當我這樣做的時候它不起作用在JS文件中。僅從瀏覽器控制檯 – Kir