конфликт iScroll - PullRequest
       2

конфликт iScroll

2 голосов
/ 08 декабря 2011

HTML5 шаблон в мобильном сафари на iPad.Div с iScroll работает нормально.Также есть функция jQuery, содержащаяся в операторе if / else.Эта функция проверяет, выполняет ли пользователь нажатие за пределами элемента iScroll, и, если это так, затухает в элементе iScroll.Проблема в том, что оператор if / else отлично работает как тест, если пользователь нажимает за пределами второго элемента div на странице, но не работает как тест, если пользователь нажимает за пределами элемента iScroll.Не могу понять, почему, перепробовал все идентификаторы div, связанные с div iScroll в условии if / else, но безрезультатно.
Функция ниже:

var articleBodyEl = document.getElementById('content');
articleBodyEl.addEventListener("touchend", function() {
var $target = $(event.target);
if ($target.is('ul#article_images') || $target.is('ul#article_images li') || $target.is('div#article')) {
    //do nothing
} else {
    $('#article').fadeToggle('fast');
}
});

# article = iScroll div

# article_images = отдельный div на странице, показывает, работает ли пользователь за пределами этого div.
HTML:

<div id="article">
<div id="article_content">
   <div id="scroller">
   <div id="text_1" class="article_text">
    <h4>Wish you were here</h4>
    <p>Sometimes we stumble upon a photograph that requires no words whatsoever. An image that proves the ancient adage that a good picture is worth a thousand words (and probably more, if some of them are small words like ‘if’, ‘it’ and ‘er’). </p>
   </div>
   </div>
</div>
</div>

1 Ответ

0 голосов
/ 08 апреля 2012

попробуйте заменить if / else на следующее,

if (!$target.is('div#article')) { 
    $('div#article').fadeToggle('fast');
}

, если content div является родительским для iScroll div, тогда вам может потребоваться stopPropagation при событии касания iScroll.

...