0

以下のようにjquerymobile1.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>

それはうまく機能します(エラーなし、警告なし、add属性はページ#goodsAddをロードできます)が、jquery mobile 1.2.0を1.3.0に更新すると、属性aはgoodsAddページをロードできません。誰でも私を助けることができますか?どうもありがとう

4

1 に答える 1

0

私も同じ問題を抱えていて、knockout.jsサイトで答えを見つけました。クリックハンドラの最後に「returntrue」を追加するだけです。

注3:デフォルトのクリックアクションを許可する

デフォルトでは、Knockoutはクリックイベントがデフォルトのアクションを実行しないようにします。これは、たとえば、タグ(リンク)でクリックバインディングを使用する場合、ブラウザーはハンドラー関数のみを呼び出し、リンクのhrefに移動しないことを意味します。クリックバインディングを使用する場合、通常は、別のWebページへの通常のハイパーリンクとしてではなく、ビューモデルを操作するUIの一部としてリンクを使用しているため、これは便利なデフォルトです。

ただし、デフォルトのクリックアクションを続行させたい場合は、クリックハンドラー関数からtrueを返すだけです。

于 2013-04-01T17:22:27.910 に答える