编写自定义ddSlick KnockoutJS bindingHandler

时间:2012-09-13 01:20:09

标签: jquery knockout.js knockout-mapping-plugin

我似乎无法使ddSlick(基于图像的下拉列表jQuery插件)的自定义绑定处理程序正常工作。

我总是可以让它绑定静态数据,但由于某种原因,一旦ddSlick被初始化,KO就不会调用binder的更新方法。太疯狂了!我实际上可以从自定义绑定器中删除$(element).ddslick()调用,并再次调用更新方法!!

请随意使用此链接测试我的代码(更容易调试)http://mjf.me/Dev/ddSlickBinder.html

或这个JS小提琴 http://jsfiddle.net/farina/JSTUA/1/

提前致谢!

1 个答案:

答案 0 :(得分:4)

http://jsfiddle.net/amtiskaw/nEVsP/

这里实际上有几个问题。首先,ddslick插件替换了它所调用的元素。 Knockout检测div何时被删除并清除其注册的绑定,因此slickIt更新从未被调用过多次。我通过添加一个子div并在其上调用插件来解决这个问题。

第二个是ddslick将忽略后续尝试在同一元素上初始化它。我之前通过调用'destroy'来解决这个问题,以便删除任何预先存在的ddslick实例。