0

私はあなたに見せるためにjsFiddleを設定したWebアプリのアイデアのプロトタイプを作成しています。(粗いプロトタイプ)

私の機能のうちの2つは完璧に機能します。

ただし、オプションが表示されると、呼び出されたときに次の関数が機能しません..

おそらく私は盲目ですか?今日は 8 時間のコーディング セッションがありました。

ただし、オプションが選択されると、オプションを保持するコンテナは消えるはずです

function begin(){
$( this ).hide();
    $(".center-logo").hide(),
    $(".clapper").show(),
    $(".clapper").text("tap to chose option")
}
function movieChoice(){
    $("#film-list").fadeIn('slow'),
    $(movieList.movies).each(function(index){$("#movies").append('<li class="selector" id="'+this.rating+'">' + this.name  + '</li>');});
}
function movieSelector(){
    $("#film-list").fadeOut('slow')
    $(".clapper").hide()
    $(".date").show()
}

$("#begin").on( "swiperight", begin)
$(".clapper").on( "tap", movieChoice)
$(".selector").on( "tap", movieSelector)
4

2 に答える 2

2

これを変える

$(".selector").on( "tap", movieSelector)

$("#movies").on("tap", ".selector", movieSelector)

そして、あなたは行ってもいいです。selectorとバインドする時点ではまだ使用できないため、コードは機能movieSelector()しません。moviesDOMがready. 別の方法もあります。tap最も近い静的な親 (この場合はその) にバインドする代わりに、それを にバインドすることmoviesできます。document

$(document).on("tap", ".selector", movieSelector)

あなたのコードにはさらに2つの問題があります:

  1. readyこれらすべてを行うためにイベントを使用しています。pageinitまたはpageshow、データ/初期化などをバインドするためにページイベントを使用することを検討してください。ただしdata-role=page、コードに含まれていないため、質問からjQMタグを削除することをお勧めします。

  2. また、の,代わりに多くのを使用しています;。あなたはそれを変更したいかもしれません。

于 2013-08-02T16:00:25.757 に答える
1

#movies を聴く必要があります

$("#movies").on( "tap", '.selector', movieSelector)

ここをチェックhttp://jsfiddle.net/SM5QJ/3/

問題は、dom に存在しない要素にバインドすることです。したがって、できることは、それを #movies にバインドし、.selector のタップ イベントでリッスンするように指示することです。

詳細については、http://api.jquery.com/on/をご覧ください。

于 2013-08-02T15:59:44.377 に答える