Предотвращение дефолта touchmove на родительском, но не на дочернем элементе

Я создаю небольшое веб-приложение для iPad, и у меня есть несколько элементов, которые я предотвращаю от прокрутки пользователем, предотвращая по умолчанию на событие touchmove. Однако у меня возникла ситуация, когда мне нужно, чтобы пользователь мог прокручивать дочерний элемент.

Я пытался использовать e.stopPropagation(); но безуспешно! Я также попытался определить элемент под пальцем и поместить e.preventDefault(); внутрь оператора if, но опять же безрезультатно. Или, может быть, я просто что-то перепутал...

Есть идеи? Удаление .scroll div'ов из #fix div - это последнее средство, поскольку это вызовет всевозможные головные боли.


EDIT

Мне удалось разобраться с этим. Похоже, я не понял, как использовать .stopPropagation(); упс!

Рабочий код:

<div id="fix">

    <h1>Hi there</h1>

    <div class="scroll">
        <ul>
            <li>List item</li>
            <li>List item</li>
            <li>List item</li>
        </ul>
    </div>

    <div class="scroll">
        <ul>
            <li>List item</li>
            <li>List item</li>
            <li>List item</li>
        </ul>
    </div>

</div>

И Javascript:

$('body').delegate('#fix','touchmove',function(e){

    e.preventDefault();

}).delegate('.scroll','touchmove',function(e){

    e.stopPropagation();

});
24
задан Karen Zilles 15 January 2014 в 19:56
поделиться