Показать/скрыть переключатель функций для iPad

1 Paul [2013-09-22 11:14:00]

У меня есть функция переключения на моем сайте (пример здесь), где вы можете показывать и скрывать текст в DIV. Код:

.js код

function toggle(sDivId) {
                var oDiv = document.getElementById(sDivId);
                oDiv.style.display = (oDiv.style.display == "none") ? "block" : "none";
}

.html код:

<div onclick="toggle('divContent1')" style="cursor: pointer;">Hide and show</div>
    <div id="divContent1" style='display:none'>
    text here
    </div>
</div>

Эта функция отлично работает на веб-сайте, когда я просматриваю ее на своем компьютере. Но когда я проверил свой сайт на iPad, он не работает. Кто-нибудь знает, почему и вы могли бы предложить решение этой проблемы? Благодарю!

javascript jquery ios ipad toggle


1 ответ


2 Решение Gone Coding [2013-09-22 11:41:00]

Пример jQuery:

Html

<div>
    <div id="pressMe" style="cursor: pointer;">Hide and show</div>
    <div id="divContent1" style='display:none'>text here</div>
</div>

JQuery

$('#pressMe').click(function(){
    $('#divContent1').toggle();
});

JSFiddle здесь: http://jsfiddle.net/cuDp5/

Играйте с ним на JSFiddle. Вы все равно можете вызывать функции из обработчика привязки определенного div, если хотите, это просто показывает альтернативу. Обычно лучше управлять выбором кнопки и цели с помощью классов (для идентификации кнопок) и атрибутов, таких как data-targetdiv="#divContent1" чтобы код был повторно использован и не был жестко связан с определенным идентификатором в коде.

Пример более гибкой версии, управляемой данными: http://jsfiddle.net/cuDp5/2/

Обратите внимание, что вам нужно обернуть JQuery в событие "onloaded". В JQuery, который раньше был $(document).ready( но современная стенография теперь просто $(function(){...});

например

$(function(){
   $('.pressMe').click(function(){
      $($(this).attr('data-target')).toggle();
   });
});

Этот код извлекает атрибут данных из выбранного элемента, который будет использоваться в качестве селектора, для которого элемент переключается. Гораздо лучше, чем идентификатор жесткой проводки в коде. В примере есть два набора div для демонстрации.