MooTools:将事件附加到多个元素

时间:2010-09-08 18:30:05

标签: javascript jquery mootools css-selectors

我有一个我需要转换为MooTools的jQuery例程,但我无法让它工作。这是我的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 个答案:

答案 0 :(得分:2)

单击链接时,您无需显式设置窗口的位置。目前,代码停止本机事件,调用pageTracker对象上的方法,然后重定向到所单击链接的位置。

_link方法的Google Analytics文档说明了

  

此方法与_setDomainName()和_setAllowLinker()方法结合使用,以启用跨域用户跟踪。 _link()方法通过URL参数(HTTP GET)将cookie从此站点传递到另一个站点。 它还会更改document.location并将用户重定向到新网址

暗示您只需停止点击事件,然后调用_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 :(得分:1)

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