2017-02-15 22 views
0

Я запускаю показ текстового поля, когда я сосредотачиваюсь на флажке с надписью «other», поэтому пользователю это нужно только тогда, когда они нажимают этот выбор среди других флажков. (http://air.abricot-production.com/alliance-of-independent-restaurants/restaurant-membership-application.html).triggering jQuery show on focus не работает на мобильном телефоне

<script> 
    $(document).ready(function(){ 
     $(".BusTypeOtherTextArea").hide(); 
      $(".BusTypeOther").focus(function() { 
       $(".BusTypeOtherTextArea").show("fast"); 
       return false; 
      }); 
     }); 
    </script> 

фокус работает нормально на рабочем столе, но не на мобильном? Если я использую клик, он работает на обоих, но не оставляет флажок. Как сделать эту работу для мобильных устройств?

ответ

0

Это решение работает:

$(document).ready(function(){ 
    $(".BusTypeOtherTextArea").hide(); 
     $(".BusTypeOther").one('click focus', function() { 
      $(".BusTypeOtherTextArea").show("fast"); 
      return false; 
     }); 
    }); 
0

Я думаю, что обходной путь для этого, как я вижу, это должно быть что-то вроде:

$('.checkBox').click(function(){ 
    if($(this).prop('checked')) { 
    // show textarea 
    } else { 
    // hide 
    } 
}); 

Я предлагаю не используя фокус, особенно там, где вы не имеете этот жест в мобильных устройствах (таблетки/телефон).

+0

Мой testarea больше не скрыт, чтобы начать с. К сожалению не могу форматировать как код с углублениями и т.д. $ (документ) .ready (функция() { $ ("BusTypeOtherTextArea. ") Скрывать();.. $ (". BusTypeOther") щелкните (function() { if ($ (this) .prop ("checked")) { $ (". BusTypeOtherTextArea"). show ("fast"); } else { $ (". BusTypeOtherTextArea"). («быстрый»); }); }); –

+0

Вы решили? –

+0

Спасибо Бен, .one ('click focus', function() кажется хорошим решением. –