Мой обработчик кнопок вызывается дважды - один раз для mousedown / touchstart и второй раз для mouseup / touchend.
Это происходит как на моем устройстве iPhone, так и в браузере Chrome.
Использование ST 1.1
Я не нашел никаких ссылок на эту проблему, которая, кажется, предполагает, что что-то в моем env неверно, но у меня заканчиваются вещи, чтобы проверить ...
Изучение объектов событий, переданных обработчику в Chrome DevTools. Я вижу, что они оба имитируют события «касания», первое происходит из «mousedown», а второе - из «mouseup».
Есть идеи?
EDIT:
Я обнаружил, что это происходит, когда я добавляю вызов (даже с пустым обработчиком) в Ext.EventManager.onDocumentReady
.
Если я удаляю этот вызов, я получаю только щелчки мышью, как и ожидалось.
Если я заменю его на 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>