0

phonegapとjquery mobileでモバイルアプリを作っています。メニュー要素の 1 つを選択するたびに、WS を呼び出して、画面に表示する回答を提供します。そこまで完璧に機能します。

見やすくしたいので、コード トリガー (「作成」) を使用します。( http://jquerymobile.com/demos/1.0a4.1/docs/forms/forms-checkboxes.htmlしかし、更新の代わりに作成する必要があります)

var listadohtml = '<div data-role="fieldcontain"><fieldset data-role="controlgroup">';
for (var i=0;i<resultado.length;i++){
    var item = '';
    var id = resultado[i]['id'];
    item += '<input type="checkbox" name="checkbox-'+id+'" id="checkbox-'+id+'" class="custom" />';
    item += '<label for="checkbox-'+id+'">'+resultado[i]["title"]+'</label>';

    listadohtml += item;
}
listadohtml += '</fieldset></div>';
$('#listaPreguntas').html(listadohtml).trigger('create');

その直後に、イベントを関連付けます。

$("#listaPreguntas input[type='checkbox']").bind( "click", function(event, ui) {... some code ...});

すべてが正常に表示されますが、問題は、チェックボックスをクリックすると、緑色のチェックマークが表示されず、イベントが変更されることがあります (常にではありません)。それが発生した場合、画面の他の部分をクリックすると、以前にクリックしたことがわかります。これは、更新されて目盛りが表示されるためです。

私が持っている結論

  • Android 4.0を搭載した携帯電話ですべてのテストを行っているため、AVDではありません。
  • de triggerを使用すると、jquery mobileを含むコードのようです。
  • 何年も待つことができ、それが起こる可能性があるので、ロード時間ではないと思います。

ご覧のとおり、これは「ロジック」の問題ではなく、ユーザビリティの問題です。

前もって感謝します!

4

2 に答える 2

2

チェックボックスとラジオには、changeevent notを使用しますclick。イベントを動的要素に添付することは異なることに注意してください。それに応じて回答を更新しました。

デモ

$(document).on('change', '[type=checkbox]', function () {
  // code here
});
于 2013-07-18T08:51:53.413 に答える
0

イベント クリックが期待どおりに毎回発生する場合は、JQM に依存するのではなく、コード内で addClass および removeClass を実際に使用して、チェック ボックスのチェックされた/チェックされていないクラスを設定してみてください。

于 2013-07-18T08:06:59.800 に答える