Knockout 2.2.0错误与jQuery 1.9

前端之家收集整理的这篇文章主要介绍了Knockout 2.2.0错误与jQuery 1.9前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我复制了一个knockoutjs的例子:
<!DOCTYPE html>
    <html>
    <head>
      <script src="http://code.jquery.com/jquery-1.8.0.min.js"></script>
    <script src="http://cdnjs.cloudflare.com/ajax/libs/knockout/2.2.0/knockout-min.js"></script>

    <Meta charset=utf-8 />
    <title>JS Bin</title>

    </head>
    <body>


    <h2>Participants</h2>
    Here are the participants:
    <div data-bind="template: { name: 'person-template',data: buyer }"></div>
    <div data-bind="template: { name: 'person-template',data: seller }"></div>





    <script id="person-template" type="text/html">
        <h3 data-bind="text: name"></h3>
        <p>Credits: <span data-bind="text: credits"></span></p>
    </script>

    <script type="text/javascript">
         function Myviewmodel() {
             this.buyer = { name: 'Franklin',credits: 250 };
             this.seller = { name: 'Mario',credits: 5800 };
         }
         ko.applyBindings(new Myviewmodel());
    </script>
    </html>

当我将jQuery更新为1.9版时,我遇到以下错误

Uncaught TypeError: Object function (e,t){return new st.fn.init(e,t,X)} has no method 'clean'

如果有人可以解释这个bug是在jQuery还是KO,我会感激的.

解决方法

原因

你没有使用最新版本的Knockout.以前的版本,2.2.0,与jQuery 1.9.x和on不兼容.见this Knockout dev thread

Knockout 2.2.0 uses jQuery.clean() which is deprecated and does not exist in 1.9.

这意味着Knockout 2.2.0正在调用未定义的jQuery方法,从而触发您指定的JS错误.

解决方

考虑更新到@L_404_1@与jQuery 1.9兼容
>如果不能,请使用添加jQuery Migrate
plugin

向后兼容到jQuery 1.9
>如果所有其他失败,您将需要恢复到jQuery 1.8

原文链接:https://www.f2er.com/jquery/179934.html

猜你在找的jQuery相关文章