Сделать элементы списка кликабельными в JavaScript

Я разрабатываю приложение для Android с использованием PhoneGap. В этом приложении я интегрировал модуль входа в Facebook. После того, как пользователь войдет в приложение, он / она сможет увидеть список своих друзей. Я сделал до этого. Что я должен сделать, нажав на имя конкретного друга, это имя друга должно быть добавлено в другой список. Но моя проблема в том, что этот список друзей не кликабелен. Как сделать динамический список кликабельным? Ниже приведен мой код. Что мне не хватает?

xyz.html

  <div class="section">
          <h1>Get user's friends</h1>
          <div id="user-friends"></div>
          <div class="button button-requires-connect"              onclick="getUserFriends();hideButton(this);" />Get your friends</div>

          <div class="info-requires-connect">You need to login before you can use this functionality.</div>


        </div>

pqr.js

function getUserFriends() {
  var markup = '<div class="data-header">Friends</div>';

  for (var i=0; i < friendsInfo.length && i < 25; i++) {
    var profilePictureUrl = '';
    if (friendsInfo[i].picture.data) {
      profilePictureUrl = friendsInfo[i].picture.data.url;
    } else {
      profilePictureUrl = friendsInfo[i].picture;
    }
    markup = markup + '<img src="' + profilePictureUrl + '">' + friendsInfo[i].name + '<br />';
  }

  document.getElementById('user-friends').innerHTML = markup;
}

2 ответа

Вы можете обернуть свою "разметку друга", например, в <li>вот так:

markup = markup + '<li><img src="' + profilePictureUrl + '">' + friendsInfo[i].name + '</li>'

а затем использовать JQuery для привязки кликов к <li>s:

$('#user-friends').on('click', 'li', function() {
  ... do something
});
function getUserFriends() {
  var markup = '<div class="data-header">Friends</div>';

  for (var i=0; i < friendsInfo.length && i < 25; i++) {
    var profilePictureUrl = '';
    if (friendsInfo[i].picture.data) {
      profilePictureUrl = friendsInfo[i].picture.data.url;
    } else {
      profilePictureUrl = friendsInfo[i].picture;
    }
    var clickableName = '<a href="" onclick="handleClick(this); return false;">' 
        + friendsInfo[i].name + '</a>';
    markup = markup + '<img src="' + profilePictureUrl + '">' + clickableName + '<br />';
  }

  document.getElementById('user-friends').innerHTML = markup;
}

Затем напишите функцию-обработчик

function handleClick(element/*which friend was clicked*/)
{
    //do something with your friend
}

Или вы можете использовать jQuery для привязки события клика на элементе, как сказал @MiRaIT

Другие вопросы по тегам