Je travaille sur une application web qui contient SVG dans chaque page, afin de tourner une page, je dois utiliser glisser (gauche et droite). Swipe événements sont détectés sans aucun problème sur une div ou img, etc. Mais il est impossible de détecter événement touche le fichier SVG inclus :(Touch Events sur SVG avec JQuery mobile
J'utilise JQuery 1.6.4 et JQuery 1.0b3 mobile.
JS:
$('.touchPad object').live('swipeleft swiperight',function(event){
var currentPage = getVar("page");
if(currentPage == "0")
{
currentPage = 1;
}
if (event.type == "swiperight") {
currentPage ++;
var page = "page="+currentPage;
$.mobile.changePage({
url: "http://asample.com/JQueryMobileTests/index.php",
type: "get",
data: page},
"slide",
true
);
}
if (event.type == "swipeleft") {
currentPage --;
var page = "page="+currentPage;
$.mobile.changePage({
url: "http://asample.com/JQueryMobileTests/index.php",
type: "get",
data: page
});
}
event.preventDefault();
});
HTML.
<div role-data="page" class="touchPad">
<div role-data="header"></div>
<div role-data="content">
<div>
<h1>Page : </h1>
<object type="image/svg+xml" data="pict.SVG" width="800" height="800"></object>
</div>
</div>
</div>
Je viens de poster une question similaire http://stackoverflow.com/questions/22415992/how-is-jquery-mobile-interfering-with-my-mouse-touch-listening-on-svg-documents. La recherche dans le code mobile de jquery dans Chrome DevTools montre certains endroits où il bloque la propagation des événements souris, mais je ne suis pas sûr de ce qui peut être spécifique à SVG, si tant est que ce soit. –