1

ノックアウトでレンダリングされたいくつかの要素があります:

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

そして、データ属性でjquery要素を見つけたい:$("[data-chart-id='1']")

でも、モデルでやると、data-chart-idまだモデルが割り当てられていない。

これに対処する方法は?

4

2 に答える 2

3

setTimeoutを使用して、バインディングが終了するのを待つか、カスタムバインディングを作成できます。

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
    }
};
于 2013-01-22T19:29:08.933 に答える
1

これを試して:

$("body *[data-chart-id='1']");
于 2013-01-22T19:05:07.563 に答える