2013-04-27 63 views
1

我坚持这似乎只在Win7的64个浏览器和8的Javascript mousemove事件时不捕获在win7下/ 8

我的应用程序出现问题使用“JQuery的滑块” 64个浏览器(见http://egorkhmelev.github.io/jslider/ )在我可用的所有测试环境下都能正常工作 - 我在该平台上的Chrome,Safari和Firefox上进行OS-X测试下开发,XP-SP3上的相同三种,以及IOS下的Safari。

某些用户(以及客户)已经证明,滑块在Windows 7下的Chrome,Firefox和Safari下不会移动。但使用Opera时,滑块的行为与预期相同。看来,共同的因素是64位浏览器和64位MS操作系统。奇怪的是,滑块在IE下工作,但为大学开发的应用程序不需要支持任何版本的IE。

我已经检测到响应mousemove事件并确定它不会触发问题系统的函数。

绑定代码:

this._bindEvent($(document), "move", function(event){ 
    if(self.is.drag){ 
     event.stopPropagation(); 
     event.preventDefault(); 
     self._mousemove(event); 
    } 
}); 

它看起来合理的,我(除了间距;-),和我所有的测试环境下,肯定效果很好。

我的问题:有没有人遇到类似的问题,或知道64位浏览器下的特殊要求?

我的应用程序位于PaperMiner.org.au,您可以尝试滑块而无需注册或任何东西。

回答

0

已找到问题。 JQuery Slider响应点击和触摸事件。代码如下所示:浏览器,Firefox和Safari的MS Windows 7和8,本次测试报告“真实”下运行

this.supportTouches_ = 'ontouchend' in document; 
    this.events_ = { 
     "click": this.supportTouches_ ? "touchstart" : "click", 
     "down": this.supportTouches_ ? "touchstart" : "mousedown", 
     "move": this.supportTouches_ ? "touchmove" : "mousemove", 
     "up" : this.supportTouches_ ? "touchend" : "mouseup" 
    }; 

在64位版本,所以后来代码等待事件,永远不会触发。真正的问题是测试需要更严格,所以只有实际的触摸驱动设备绑定“触摸”事件。问题4817029有一些答案,但测试表明最近的浏览器版本已经否定了在那里找到的解决方案。 IOS或Android测试可能更可靠...