извините за это, но мне нужно увидеть рабочий пример Knockoutjs, работающий с jCarouselLite (в jsFiddle, пожалуйста). Кажется, я не могу заставить его работать. Вот раньше для меня вопрос относительно этого:Работа с Knockoutjs и jCarouselLite
Having trouble making Knockout and jCarouselLite to work
Теперь, что я сделал попробовать его голые кости вне моего реального проекта. Вот код, у меня есть:
в HTML:
<h2>Index</h2>
<div id="index-root">
<div class="house-row" data-bind="slide: true">
<div class=" house-row-nav"><a href="javascript:void(0)" id="item-prev"></a></div>
<div class="house-row-nav"><a href="javascript:void(0)" id="item-next"></a></div>
<ul data-bind="foreach: images">
<li>
<div class="house-row-box nopadding-left nopadding-right">
<div class="image-wrapper">
<img data-bind="attr: { src: $data.image }" alt="image"><span data-bind="text: $data.image"></span>
</div>
</div>
</li>
</ul>
<div class="clearfix"></div>
</div>
</div>
И в KOjs:.
$(document).ready(function() {
var model = new IndexViewModel();
model.init();
ko.applyBindings(model, document.getElementById("index-root"));
});
var IndexViewModel = function() {
var self = this;
self.images = ko.observableArray();
//
// Custom bindings
//
//ko.bindingHandlers.slide = {
// init: function (element) {
// },
// update: function (element, valueAccessor) {
// $(element).jCarouselLite({
// btnNext: ".next",
// btnPrev: ".prev",
// visible: 3,
// speed: 1450,
// mouseWheel: true
// });
// }
//};
//
// Methods
//
self.init = function() {
self.images.push({
image: "/Images/1.png"
});
self.images.push({
image: "/Images/2.png"
});
self.images.push({
image: "/Images/3.png"
});
self.images.push({
image: "/Images/4.png"
});
self.images.push({
image: "/Images/5.png"
});
//$(".house-row").jCarouselLite({
// btnNext: ".next",
// btnPrev: ".prev",
// visible: 3,
// speed: 1450,
// mouseWheel: true
//});
};
};
$(document).ready(function() {
$(".house-row").jCarouselLite({
btnNext: ".next",
btnPrev: ".prev",
visible: 3,
speed: 1450,
mouseWheel: true
});
});
комментируемого $ ("Дом-рядная") jCarouselLite ... и ko.bindingHandlers.slide ... - это те места, которые я пытался инициализировать jCarouselLite.
Образец в jsfiddle действительно поможет мне понять это.
Привет Рой J, спасибо за ответы. Я пробовал свои изменения, но я не могу заставить его работать. Является ли ko.bindingHandlers.slide() действительно вне ViewModel? Я пробовал копировать вашу строку кода в строке. Я вижу, что он работает здесь, но я не знаю, что я делаю неправильно, и нет никаких ошибок в консоли. Один запрос, если можно, вы можете поместить это в jsFiddle? Я думаю, что если я увижу весь код там и его работу, я смогу заставить его работать. –
Весь код есть. На jsFiddle есть условие гонки, которое я должен был исправить: готовый код $ работал до того, как был определен конструктор ViewModel. http://jsfiddle.net/f59cunh6/ –
@g_b Да, ko - глобальная переменная, и модификации к ней на самом деле не являются частью модели. –