0

我编写了一个使用 jquery mobile 1.2.0 和 knockoutjs 的 html 代码,如下所示

<div id="shoppingCar" data-role="page">
    <div data-role="header" data-position="fixed" data-id="headernav">
        <a data-transition="slide" data-bind="html:editTextForLeft, click:$root.editFuncForLeft, attr:{href: $root.getHref }">add</a>
        <h2>order</h2>
        <a data-bind="click:toEditModel, html:editText" data-mini="true">edit</a>
    </div>

它运行良好(没有错误没有警告并且添加属性可以加载页面#goodsAdd),但是当我将jquery mobile 1.2.0 更新到1.3.0 时,属性a 无法加载goodsAdd 页面。任何人都可以帮助我吗?多谢

4

1 回答 1

0

我遇到了同样的问题,并在 knockout.js 网站上找到了答案。只需在点击处理程序的末尾添加“return true”即可。

注3:允许默认点击动作

默认情况下,Knockout 将阻止点击事件采取任何默认操作。这意味着如果您在 a 标记(链接)上使用 click 绑定,例如,浏览器将只会调用您的处理函数,而不会导航到链接的 href。这是一个有用的默认值,因为当您使用单击绑定时,通常是因为您将链接用作操作视图模型的 UI 的一部分,而不是作为指向另一个网页的常规超链接。

但是,如果您确实想让默认点击操作继续进行,只需从您的点击处理程序函数中返回 true。

于 2013-04-01T17:22:27.910 回答