0

これが私が動的にページを作成して強化しなければならないコードです。同様のパターンは、テキストフィールド、ボタン、グリッドビューなど、他の多くの種類でも機能しています。しかし、リストビューでは機能しないことがわかりました。

$(document).bind("pagebeforechange", function route(e, data) {
    ...
    $content = $page.children(":jqmData(role=content)");
    var markup = '<ul id="calendarList" data-role="listview"><li>HELLO</li></ul>';
    $content.html(markup);
    $page.trigger('create');
    $.mobile.changePage($page);
});

私はいつも次のようなエラーメッセージを受け取ります

Cannot read property 'jQuery16409763167318888009' of undefined

Chromeを使用してデバッグしたところ、$ page.trigger('create');の行で常に失敗することがわかりました。

4

1 に答える 1

1

私は自分で解決策を見つけました。回線を入れ替えれば問題なく動作しますが、

$page.trigger('create');

と、

$page.page();
$content.find( ":jqmData(role=listview)" ).listview();

しかし、その理由はまだわかりません。前者は後者を置き換えるためのより新しく、より単純な構文だと思いました。$ page.trigger('create');の1回の呼び出し ページ全体を一度に強調できます。誰かがこれら2つの違いを知っていますか?

于 2012-09-01T00:03:36.113 に答える