1

順序付けられていないリストに入るリスト項目を生成しています。次に、これらのリスト項目のクリックをリッスンしたいと思います。完全なコードを投稿していないことは承知していますが、投稿する必要がないことを願っています。このように追加された要素は、私の jQuery クリック機能によって完全に無視されますか? 私はほぼすべてを試しましたが、理由がわかりません!私が見たいのは私の「笑」アラートだけです!:(

  $.each(entries, function(i, v) {
    s += '<li';
    if (favouriteItem(v.title)) s += ' data-theme="e"';
    s += '><a href="#feedItemPage" class="contentLink" data-transition="slide" data-entryid="'+i+'">' + v.title + '</a></li>';
  });

  $("#linksList").append(s);
  $("#linksList").listview("refresh");

    $("li").click(function() {
      alert("lol");
      selectedEntry = $(this).data("entryid");
    });

項目は視覚的に表示されますが、ソース コードは次のようになります。

  <div data-role="content">
      <ul data-role="listview" id="linksList" data-divider-theme="b" data-inset="false"></ul>
  </div>

そこにli要素がないことを示唆しています。それでも、彼らは視覚的に示していますか?溶岩のプールに飛び込む前に誰か助けてください。

4

2 に答える 2

7

変化する:

$("li").click(function() {
  alert("lol");
  selectedEntry = $(this).data("entryid");
});

$('#linksList').on('click', 'li',function() {
  alert("lol");
  selectedEntry = $(this).data("entryid");
});

.on()'sドキュメントに要素を動的に追加する場合は、委任されたイベント構文を使用する必要があります。

イベント ハンドラーは、現在選択されている要素にのみバインドされます。これらは、コードが .on() を呼び出す時点でページに存在している必要があります。要素が存在し、選択できることを確認するには、ページの HTML マークアップにある要素のドキュメント対応ハンドラー内でイベント バインディングを実行します。新しい HTML がページに挿入されている場合は、要素を選択し、新しい HTML がページに配置された後にイベント ハンドラーを添付します。

于 2013-06-03T20:18:28.243 に答える
1

委任を使用する:

$("#linksList").on('click',"li",function() {
      alert("lol");
      selectedEntry = $(this).data("entryid");
    });
于 2013-06-03T20:20:43.297 に答える