Почему может не работать функция JS?
Ну для начала, можно записать это короче))$(document).on('click touchstart', '#trigger', function() {
      $("#a").appendTo(document.body).show();
  });
А дальше, сложно сказать, почему не работает у вас, а тут все ок. Дайте ссылку на вам сайт. Так будет проще понять
Небольшой kомментарий к коду. Если вы замечаете, что у вас в коде дублируются селекторы, выносите их в отдельные переменные и потом работайте с ними. Это упростит поддержку кода и обращение к переменной происходит быстрее, чем к селектору.
P.S. Дима Турков прав, используйте вызов методов по цепочке, это также упрощает код.