首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iScroll冲突

iScroll冲突
EN

Stack Overflow用户
提问于 2011-12-08 20:35:31
回答 1查看 1.3K关注 0票数 2

iPad上Mobile Safari中的HTML5模板。带有iScroll的Div运行得很好。在if/else语句中还包含一个jQuery函数。该函数测试用户是否在iScroll分区之外点击,如果是,则淡出iScroll分区。

问题是,如果用户在页面上的第二个div之外点击,if/else语句可以很好地作为测试,但如果用户在iScroll div之外点击,则不能作为测试。找不到原因,我已经尝试了if/else语句中与iScroll div关联的所有div ID,但都没有成功。

下面的函数:

代码语言:javascript
复制
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');
}
});

#文章= iScroll目录

#article_images =页面上的单独div,测试用户是否在此div之外单击可以正常工作。

HTML:

代码语言:javascript
复制
<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>
EN

回答 1

Stack Overflow用户

发布于 2012-04-08 17:53:07

尝试将if/else替换为以下内容,

代码语言:javascript
复制
if (!$target.is('div#article')) { 
    $('div#article').fadeToggle('fast');
}

如果content div是iScroll div的父目录,那么您可能必须在iScroll的touchend事件上执行stopPropagation。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8431059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档