Tag: touch events

将多个事件绑定到同一个函数

如何将多个事件绑定到同一个函数。 我想点击和触摸开始做同样的事情。 然后我想要一个鼠标hover的第二个function。 我想使用这种设置: $(document).on({ click: function (event) { // I want this: click, touchstart: function (event) { event.preventDefault(); // do something }, mouseover: function (event) { event.preventDefault(); // do something } }, ‘.link’);

JQuery .on(“点击”)在触摸设备上触发“鼠标hover”

当使用JQuery的$.on(“click”, function(){});时,我遇到了不需要的行为$.on(“click”, function(){}); 在触摸设备上。 这是我的代码如下: 码: $(“.team”).on(“mouseover”, teamMouseOver); $(“.team”).on(“mouseout”, teamMouseOut); $(“.team”).on(“click”, teamThumbClicked); function teamMouseOver(event){ console.log(event.type); } function teamMouseOut(event){ // Do something } function teamThumbClicked(event){ console.log(“Clicked!”); } 问题: 使用上面的代码,点击触摸设备上的.team元素同时触发两个侦听器,为我提供以下控制台日志: mouseover Clicked! 问题为什么在触摸设备上触发mouseover ? 这不是我对没有鼠标的设备所期望的行为。 这是一个错误吗? 我应该使用什么事件,因此当鼠标指针正在进入时,“mouseover”才会被触发? 我的JQuery版本是2.2.4。

jQuery(Swipe vs. Touch)pageX和pageY一直返回0

我在iPhone上玩touchstart和touchend事件。 我构建了一个具有div的示例页面,如果您触摸它并滚动页面,它应该返回开始和结束位置的y坐标。 链接: http : //jsbin.com/ibemom/2 jQuery: var touchStartPos; $(‘.theDiv’) .bind(‘touchstart’, function(e){ touchStartPos = e.pageY; }) .bind(‘touchend’, function(e){ alert(touchStartPos + ‘ | ‘ + e.pageY) }) 但是,当我在iPhone上加载该页面时,警报会将两个值都报告为零。 有人看到我有什么问题吗? 更新: 我偶然发现了jQuery Mobile项目中的这段代码: https : //github.com/jquery/jquery-mobile/issues/734 它的评论一目了然: // (in iOS event.pageX and event.pageY are always 0 ) 它没有说明为什么会这样,但至少我发现其他人看到了同样的事情。 将挖掘该页面上的示例代码以查看解决方案是否存在。 更新II: 好吧,在查看上面链接中的示例代码后,看起来这将返回一个实际值: e.originalEvent.touches[0].pageY 问题是,我现在意识到这不是我需要的。 它将我附加事件的对象触及的区域的Y偏移返回到与HTML文档相关的…而不是浏览器窗口。 我的目标是找出屏幕触摸开始的位置,结束的位置……然后比较值。 如果它们有点不同,那么我们就会进行滑动…而不是触摸。 更新III: […]