Я показываю HTML со встроенным SVG. Я хочу, чтобы он обнаруживал события мыши, но он не работает на мобильном устройстве (Android Jellybean). Он отлично работает для настольного браузера.
Вот демонстрационная страница: http://artsyenta.org/misc/ss/j.touchtry1.html.
Если вы нажмете мышь над кругами, вы увидите журнал записей мыши в элементы с именем "j_xxx". Это работает в Firefox и Chrome.
Откройте Android-планшет (я тоже пробовал это на iPhone, с теми же результатами). Перетащите палец по кругам, и вы получаете событие touchhenter только время от времени. Больше ничего не отображается.
Вы можете просмотреть всю страницу и код, просмотрев источник страницы. Это не долго, самая длинная часть - определение SVG. Важные части:
$(document).ready(function() {
makeSomethingHappen("hello");
});
function makeSomethingHappen(svg) {
placeATop(true);
$('[class^=j_]')
.on("mouseover", function(event) { logAction(event, this); })
.on("mouseout", function(event) { logAction(event, this); })
.on("touchstart", function(event) { logAction(event, this); })
.on("touchend", function(event) { logAction(event, this); })
.on("touchenter", function(event) { logAction(event, this); })
.on("touchleave", function(event) { logAction(event, this); })
.on("touchEnter", function(event) { logAction(event, this); })
.on("touchLeave", function(event) { logAction(event, this); });
}
var cntAct = 0;
function logAction(ev, ele) {
cntAct++;
var logSpan = $('#logTrace');
logSpan.html("" + cntAct + ": " + ev.type + " '" + $(ele).attr("class")
+ "'<br/>" + logSpan.html());
}
Вот часть SVG:
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
id="jsvg" x="0px" y="0px" width="376.247px" height="364.318px" viewBox="140 110 130 120"
enable-background="new 0 0 376.247 364.318" xml:space="preserve">
<g id="Layer_1">
<path class="j_aa_" opacity="0.75" fill="#FFFFFF" stroke="#0071BC" stroke-width="0.9925" enable-background="new " d="M224.739,6.55l-6.414,23.957c-10.377-2.785-21.304-2.785-31.671,0L180.232,6.55C194.813,2.63,210.155,2.63,224.739,6.55z"/>
[snip]
</g>
</svg>
Опять же, я обнаруживаю события мыши в браузере для рабочего стола, но не имеет никаких событий касания или мыши для мобильного браузера. Есть недостающая техника, или что-то не хватает на мобильных телефонах? Он не работает с браузером iPhone, Google Chrome на мобильных устройствах Jellybean и Firefox.
Спасибо заранее, Джером.