2

これに関する他の質問を見てきましたが、これまでのところ、私が抱えている問題を解決できませんでした:

HTML :

        <script type="text/html" id="searchPickPlaceTemplate">
                 <div class="searchpickwhere_box">
                     <ul data-role="listview" data-inset="true"></ul>
                 </div>
         </script>
         <div id="searchPickPlace"></div>

ここで jsfiddle を作成しました: http://jsfiddle.net/antaeusa/TLGY7/2/ リストビューに項目を動的に追加しているため。また、どのアイテムがクリックされたかを簡単に識別できるように、各アイテムに ID を与えて、その値を別のページに渡すことができるようにしました。

4

2 に答える 2

11

javascript および html ファイルにいくつかのエラーがありました。

Jquery Mobile では、リストビューを定義するときにdata-role="listview"の定義に含める必要があります。これにより、uljquerymobile は、「通常の」リストではなくリストビューが必要であることを理解します。

<ul data-role="listview">
  <!-- List Elements -->
</ul>

2 つ目のエラーは、html に属性が定義されておらずdata-name、javascript で属性を取得しようとしたことです。

$('#searchPickPlace ul').children('li').bind('touchstart mousedown', function(e) {
    alert('Selected Name=' + $(this).attr('data-name'));
});

選択した要素がその属性を定義していない場合、これは明らかに機能しません。したがって、次のように html で定義する必要があります。

<div id="searchPickPlace">
    <ul data-role="listview">
        <li data-name="Remuera"><!-- List element content --></li>
        <li data-name="Posonby"><!-- List element content --></li>
    </ul>
</div>​

私はあなたのコードを修正しました。ここにあなたの問題に対する完全な解決策があります。

http://jsfiddle.net/TLGY7/12/

注:$('.selector').listview('refresh');リストビューにさらに要素を動的に追加する場合は、追加されたすべての要素に対してメソッドを呼び出す必要があります。ドキュメントへのリンクは次のとおりです。

http://jquerymobile.com/demos/1.2.0/docs/lists/lists-methods.html

于 2012-12-18T02:00:01.000 に答える