这看起来似乎是一个简单的解决方案,但是当我谈到iPad上的触控内容时,我有点像n00b。
我理解我需要做的概念,我只是不知道语法。
问题:我的页面上装满了DIV。这些DIV包装在iScroll4包装器中。 iScroll脚本设置得很好,如果您通过点击和移动链接开始滚动页面,链接将永远不会触发。
然而,我并不是那么好。因为我设置了一些jQuery代码来动画“touchstart”上的一个DIV,但问题是即使我滚动或拖动我的手指,动画也会在我不想要的时候触发。我需要设置超时或取消touchstart。或者在touchend上触发动画,但如果你拖动手指x像素数量并将触摸转换为触摸移动,则取消触摸。
有谁知道怎么做?提前谢谢!
亚历
编辑:这是我目前的jQuery代码。如果我拖动手指X像素量,我需要取消动画功能。可能使用pageX和pageY?
$('tr#recent').live("touchend click", function () {
$(".modalWindow").css('display', 'block').animate({
height:716,
top:15,
left:15,
width:995
}, 300);
});
以下是雅虎如何使用他们的Scrollview:http://developer.yahoo.com/yui/3/examples/scrollview/scrollview.html
var content = scrollView.get("contentBox");
content.delegate("click", function(e) {
// Prevent links from navigating as part of a scroll gesture
if (Math.abs(scrollView.lastScrolledAmt) > 2) {
e.preventDefault();
Y.log("Link behavior suppressed.")
}
}, "a");
看看他们如何检查“lastscrolled”数量,然后在你将手指拖动一定距离时取消链接行为.....但我没有使用Scrollview ....
答案 0 :(得分:3)
如果要停止触发默认事件,则需要取消它。阅读jQuery event object,特别是event.preventDefault()和event.stopPropagation()。另一个技巧是在函数末尾添加false,所以......
$( 'div' ).bind( 'touchstart', function(e)
{
// do some funky stuff
return false; // this'll cancel the default behaviour of the event
});
通常,如果你想做更多的东西,你需要为'touchmove'添加另一个绑定来获得运动的X和Y.