Sencha touch Sencha Touch:按钮处理程序为单次单击调用了两次-为什么?
我的按钮处理程序会被调用两次——一次调用mousedown/touchstart,第二次调用mouseup/touchend 这在我的iPhone设备和Chrome浏览器上都会发生 使用st1.1 我还没有找到任何关于这个问题的参考资料,这似乎表明我的环境中有问题,但我没有东西要检查了 通过检查在Chrome DevTools中传递给处理程序的事件对象,我可以看到它们都是模拟的“tap”事件,第一个来自“mousedown”,第二个来自“mouseup” 有什么想法吗 编辑: 我发现,当我向Sencha touch Sencha Touch:按钮处理程序为单次单击调用了两次-为什么?,sencha-touch,Sencha Touch,我的按钮处理程序会被调用两次——一次调用mousedown/touchstart,第二次调用mouseup/touchend 这在我的iPhone设备和Chrome浏览器上都会发生 使用st1.1 我还没有找到任何关于这个问题的参考资料,这似乎表明我的环境中有问题,但我没有东西要检查了 通过检查在Chrome DevTools中传递给处理程序的事件对象,我可以看到它们都是模拟的“tap”事件,第一个来自“mousedown”,第二个来自“mouseup” 有什么想法吗 编辑: 我发现,当我向Ex
Ext.EventManager.onDocumentReady
添加调用时(即使处理程序为空),就会发生这种情况
如果我删除这个调用,我只会按预期点击“mouseup”
如果我用Ext.onReady
替换它,它会工作!!!
这真是令人困惑,因为一个是另一个的别名
代码复制:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script src="resources/Sencha/sencha-touch-debug.js" type="text/javascript"></script>
<link href="resources/Sencha/sencha-touch.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
MyPanel = Ext.extend(Ext.Panel, {
fullscreen: true,
initComponent: function() {
this.items = [{
xtype: 'button',
text: 'Login',
handler: this.myHandler,
scope: this
}];
MyPanel.superclass.initComponent.apply(this, arguments);
},
myHandler: function(b, e) {
console.log(e.event.type);
}
});
Ext.EventManager.onDocumentReady(function() {
});
Ext.onReady(function() {
new MyPanel();
});
</script>
</head>
<body></body>
</html>
MyPanel=Ext.extend(Ext.Panel{
全屏:对,
initComponent:function(){
此项。项目=[{
xtype:'按钮',
文本:“登录”,
handler:this.myHandler,
范围:本
}];
MyPanel.superclass.initComponent.apply(这是参数);
},
myHandler:函数(b,e){
console.log(例如event.type);
}
});
Ext.EventManager.onDocumentReady(函数(){
});
Ext.onReady(函数(){
新的MyPanel();
});
我遇到了未修饰链接节点的问题。我通过在A
节点上吃touchend
事件来修复它:
document.addEventListener('touchend', function(e) {
e.preventDefault() if e.target.localName == 'a')
}, true);
这并不完全是您的问题,但您的问题很可能是由发送到小部件的触摸和
单击事件引起的这是一种我用来向控制台发送尽可能多的发送事件(即原始DOM事件,而不是Ext事件)的方法。这对于解决此类低级问题非常有用。您能提供一些示例代码吗?或者,如果添加了复制代码+导致根本原因,则指向示例的实时链接也会起作用。你找到解决办法了吗?@kalyanipuvvada我不记得找到了原因,但我认为使用“Ext.onReady”而不是“Ext.EventManager.onDocumentReady”的解决方法对我来说已经足够了。