2016-08-12 39 views
0

我在mousedown和mouseup上使用了一個偵聽器,如果它從一個畫布轉到另一個畫面,它會作出不同的反應。在網站上,完美。但它必須是移動的,所以爲了使它工作,我去了touchstart和touchend事件。jQuery touchend事件阻塞問題(使用Cordova)

而且它不能按預期工作。

下面是一些代碼:

HTML(這是一個簡單的左側畫布右側帆布)

<canvas class="left" style="position: relative; background-color: #FFF; width: 45%; height: 80px;"></canvas><canvas class="right" style="position: relative; background-color: #FFF; width: 45%; height: 80px;"></canvas> 

JS

$('canvas').on("touchstart", function(e) { //mousedown for mobile 
    console.log('CONSOLE: start ' + this.className); 
    down = this; 
}); 
$('canvas').on("touchend", function(e) { //mouseup for mobile 
    console.log('CONSOLE: end ' + this.className); 
    calc(down, this); 
}); 
function calc(press, depress) { 
    code... 
} 

我使用亞行logcat調試和這裏是意想不到的行爲。

I/chromium(28808): [INFO:CONSOLE(148)] "CONSOLE: Reinitialized", source: file:///android_asset/www/js/share.js (148) 
I/chromium(28808): [INFO:CONSOLE(21)] "CONSOLE: start left", source: file:///android_asset/www/js/share.js (21) 
I/chromium(28808): [INFO:CONSOLE(25)] "CONSOLE: end left", source: file:///android_asset/www/js/share.js (25) 
I/chromium(28808): [INFO:CONSOLE(21)] "CONSOLE: start left", source: file:///android_asset/www/js/share.js (21) 
I/chromium(28808): [INFO:CONSOLE(25)] "CONSOLE: end left", source: file:///android_asset/www/js/share.js (25) 
I/chromium(28808): [INFO:CONSOLE(21)] "CONSOLE: start right", source: file:///android_asset/www/js/share.js (21) 
I/chromium(28808): [INFO:CONSOLE(25)] "CONSOLE: end right", source: file:///android_asset/www/js/share.js (25) 
I/chromium(28808): [INFO:CONSOLE(21)] "CONSOLE: start right", source: file:///android_asset/www/js/share.js (21) 
I/chromium(28808): [INFO:CONSOLE(25)] "CONSOLE: end right", source: file:///android_asset/www/js/share.js (25) 

那麼我爲此做了什麼。

重新初始化只是重置清潔階段。

前兩行「開始左端左」只是左側畫布中的一個水龍頭。

然後,接下來的兩行也是「開始左端」。但在這裏,我從左帆布滑到右帆布,沒有得到預期的「開始左端右」。同樣如此。

我還在Android 5.0 Lollipop Moto G(第二代)手機上使用Cordova(用於混合HTML5應用程序)。

什麼問題?

回答

0

我使用elementFromPoint的touchmove事件更正了此問題()