Во втором случае вы обращаетесь к глобальному (и необработанному) объекту браузера event
, а не к jQuery-специфическому (в браузерах, которые поддерживают глобальный event
, не все это делают - Firefox не делает ')t, например, - потому что это вещь Microsoft, которую скопировали только некоторые другие).
Звучит так, будто jQuery не передает свойство touches
в свой пользовательский объект события.Как описано в документации к объекту события , вы можете использовать event.originalEvent
в своем первом примере для доступа к «особым свойствам», которые у него есть, но при этом получать преимущества от нормализованного объекта события jQuery, например:
$('.image').bind('touchstart', function(event) {
alert(event.originalEvent.touches.length);
});
... или вы можете указать jQuery скопировать это свойство, выполнив это один раз в начале вашего скрипта:
jQuery.event.props.push("touches");
... после чего ваш первый пример должен начать работать.
Примечание: если вы не используете jQuery Touch , вы можете посмотреть на него.Я предполагаю, что в дополнение к другим вещам, которые он делает, он добавляет свойство touches
, как показано выше (но это только предположение).