假设我有许多红色彩色链接,并希望将单击事件添加到它们,使其在触发时,它将链接的href属性发送到服务器(作为ajax请求),并在成功,链接颜色将改为绿色。 我想要一些这样的东西:

$$('a.red').addEvent(
    "click",
    function () {
        new Request.JSON({
            url: 'script.php', 
            onSuccess: function(){
                [the link wich is clicked].setStyle('color', 'green');
                return false;
            }
        }).get("url="+[url of the link]);
    }
);
.

抱歉如果愚蠢的问题。请编辑标题为一些明智的。

有帮助吗?

解决方案

此处的问题是事件处理程序内的生成icOdeTagcode在请求类中的生成类别不相同。因此,通常完成的是更改新变量中的引用this,例如世代odicetagcode。

之后,您可以使用this

顺便说一句,一个建议,最好的是为绿色的一个类,并在点击时切换它们。

所以这里是一个代码建议是:

$$('a.red').addEvent("click", function (event) {
    var self = this;
    event.stop();
    new Request.JSON({
        url: 'script.php',
        onSuccess: function () {
            self.removeClass('red').addClass('green');
            return false; // I added event.stop(), presume that is what you meant. Do this line can be removed
        }
    }).get("url=" + self.href);
});
.

并在CSS中使用:

.green {
    color: green;
}
.

示例

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top