Был предыдущий вопрос об использовании Google Analytics с jQuery Mobile с успешным ответом here. Однако это было для версий jQuery до 1.9.Google Analytics & jQuery Mobile & jQuery 1.9
Возможно, кто-то может помочь изменить код, чтобы переопределенное событие .live было заменено текущим событием .on. Я пробовал, но безуспешно.
Вот код JavaScript:
var _gaq = _gaq || [];
$(document).ready(function(e) {
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') +
'.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
});
$('[data-role=page]').live('pageshow', function (event, ui) {
try {
_gaq.push(['_setAccount', 'YOUR_ANALYTICS_ID_GOES_HERE']);
if ($.mobile.activePage.attr("data-url")) {
_gaq.push(['_trackPageview', $.mobile.activePage.attr("data-url")]);
} else {
_gaq.push(['_trackPageview']);
}
} catch(err) {}
});
Просто смените жить с на, конечный результат тот же. Или вы все равно можете использовать старое связывание методов, в отличие от live, оно все еще работает. – Gajotres
@Gajotres 'on' не является прямой заменой' live'. Синтаксис вызова отличается для делегированных событий. – Walf
Я никогда не говорил, что это была прямая замена, из моего опыта и официальной документации в настоящее время используется для связывания событий страницы. Не говоря уже об этом является официальным оператором jQuery live method: Начиная с jQuery 1.7, метод .live() устарел. Используйте .on() для присоединения обработчиков событий. Пользователи более старых версий jQuery должны использовать .delegate() в предпочтении .live(). – Gajotres