Поскольку наблюдаемое может быть привязано к нескольким элементам, вам лучше всего получить его из элемента в форме пользовательской привязки.
В простейшем случае вы можете использовать привязку, например:
ko.bindingHandlers.flash = {
init: function(element) {
$(element).flash();
}
};
Используйте его на вашем элементе как: <li data-bind="flash: true"></li>
.В этом случае то, что вы передаете в привязку, не имеет значения.
Вот пример: http://jsfiddle.net/rniemeyer/Exmvh/
Вы, безусловно, можете передать параметры своей привязке, например:
ko.bindingHandlers.flash = {
init: function(element, valueAccessor) {
var duration = ko.utils.unwrapObservable(valueAccessor());
$(element).hide().flash(duration);
}
};
И используйте это как: <li data-bind="flash: 500"></li>
или используйте наблюдаемое, которое вы можете использовать для управления продолжительностью: <li data-bind="flash: selectedDuration"></li>
Вот пример: http://jsfiddle.net/rniemeyer/Exmvh/1/