Knockout.js与jQuery Mobile“绑定”绑定冲突

时间:2012-12-05 03:03:17

标签: jquery jquery-mobile knockout.js knockout-2.0

我试图在一个项目中一起使用jQuery Mobile和Knockout.js,并发现它们似乎在很多方面存在冲突。目前最糟糕的是,在with绑定中,jQuery mobile中的某些点击事件似乎无法正确触发。例如我有一个大约collapsible-set,它不会崩溃/扩展。

我在jsFiddle中加了一个例子:http://jsfiddle.net/gregbacchus/VQXsK/

这显然是一个简化的例子。在实际情况下,我无法移动with内的collapsible-set

可以修复吗?

(顺便说一句:使用jQuery v1.8.2,jQuery Mobile v1.2.0和knockoutjs v2.1.0)

2 个答案:

答案 0 :(得分:1)

使用knockout 2.2.0或更高版本。

请参阅此小提琴http://jsfiddle.net/DmNge/1/和此声明http://blog.stevensanderson.com/2012/10/29/knockout-2-2-0-released/

特别是说"The with, if, and ifnot bindings have been enhanced to preserve their original DOM elements on initial binding, so they are lighter and won’t unnecessarily strip out any special behaviours inserted by third-party libraries. I know a lot of people asked for this."

的部分

答案 1 :(得分:0)

不确定这是否只是一种解决方法,但这似乎有效

<div data-role="page" id="testPage">
    <div data-role="collapsible-set" data-theme="b" data-content-theme="d" >
        <div data-role="collapsible" data-collapsed="false">
    <!-- ko with: test -->
            <h4>Test</h4>
            <div>hello world</div>
            <div data-bind="text: hello"></div>
    <!-- /ko -->                
        </div>
    </div>                
</div>