0

サーバーから json 配列を取得し、それをループしてボタン (data-role="button") をページに追加します。各反復で $("a[data-role='button']").button() を呼び出します。

私の問題は、各ボタンが同じイベントハンドラーを呼び出す必要があるが、ID が異なることです。Java/GWT でこれを行う場合、各ボタンのイベント ハンドラーのカスタム実装のコンストラクターに id を渡します。

JQuery Mobile で同じことを達成するにはどうすればよいですか?

以下のコードは 2 つのボタンを作成しますが、それらをクリックしても何も起こりません。

これが私のコードです:

success: function(data) {
                $('#personPage div[data-role="content"]').empty();
                for (var i = 0;i < data.length;i++){
                    $('#personPage div[data-role="content"]').append('<a href="#" id="person_' + data[i].id + '" data-role="button"  data-id="person_' + data[i].id + '">' + data[i].name + '</a>');
                    $("a[data-role='button']").button();
                    $("#person_" + data[i].id).bind('click', function(event) {
                          alert('It WOrks');
                        });
                    });
                }
            }

4

1 に答える 1

1

ボタンを追加するとき (追加する html を作成するとき)、値を JSON 配列の ID として data-id 属性も追加します。したがって、html タグは最終的に次のようになります。

<a data-role="button" data-id="1234">1234 Button</a>

onclick イベント ハンドラーで、次のように ID を取得します。

var id = $(this).data('id');

それでおしまい。

データ属性の詳細については、http://api.jquery.com/data/を参照してください。

于 2012-08-15T08:02:30.820 に答える