MooTools: прикрепление события к нескольким элементам - PullRequest
2 голосов
/ 08 сентября 2010

У меня есть процедура jQuery, которую мне нужно преобразовать в MooTools, но я не могу заставить ее работать Вот моя версия jQuery:

$(".google-analytics-link").click(function () {
    var href = $(this).attr("href");
    pageTracker._link(href);
    location.href = href;
    return false;
});

Вот мой перевод MooTools:

$$(".google-analytics-link").addEvent("click", function () {
    var href = this.get("href");
    pageTracker._link(href);
    location.href = href;
    return false;
});

Похоже, не работает. Я не понимаю селекторов MooTools. Любая помощь, пожалуйста?

Ответы [ 2 ]

2 голосов
/ 09 сентября 2010

Вам не нужно явно указывать местоположение окна, когда щелчок по ссылке уже делает это.В настоящее время код останавливает собственное событие, вызывает метод для объекта pageTracker, а затем перенаправляет на местоположение по нажатой ссылке.

Документация Google Analytics для метода _link гласит, что

Этот метод работает в сочетании с методами _setDomainName () и _setAllowLinker () для включения перекрестногодоменное отслеживание пользователей.Метод _link () передает куки с этого сайта на другой через параметры URL (HTTP GET). Он также изменяет document.location и перенаправляет пользователя на новый URL .

, что означает, что вам просто нужно остановить событие click и вызвать метод _link, которыйпозаботится об остальном.

var analyticsLinks = document.getElements('.google-analytics-link');

analyticsLinks.addEvent('click', function(event) {
    // stop the page from navigating away
    event.stop();
    var href = this.get('href');
    // let the Analytics API do its work, and then redirect to this link
    pageTracker._link(href);
});
1 голос
/ 08 сентября 2010
$$(".google-analytics-link").each(function (e) { 
    e.addEvent("click", function () {
        var href = this.get("href");
        pageTracker._link(href);
        location.href = href;
        return false;
    });
});
...