Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript mootools:使用单击的元素进行ajax回调_Javascript_Mootools_Mootools Events - Fatal编程技术网

Javascript mootools:使用单击的元素进行ajax回调

Javascript mootools:使用单击的元素进行ajax回调,javascript,mootools,mootools-events,Javascript,Mootools,Mootools Events,假设我有许多红色的链接,并希望向它们添加一个单击事件,这样当它触发时,它会将链接的HREF属性发送到服务器(作为AJAX请求),成功后,链接颜色将更改为绿色。 我想要像这样的东西: $$('a.red').addEvent( "click", function () { new Request.JSON({ url: 'script.php', onSuccess: function(){

假设我有许多红色的链接,并希望向它们添加一个单击事件,这样当它触发时,它会将链接的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]);
    }
);
.green {
    color: green;
}

对不起,我问了一个愚蠢的问题。请将标题编辑为合理的标题。

这里的问题是,事件处理程序中的
this
与请求类中的
this
不同。因此,通常要做的是在新变量中更改对
this
的引用,例如
var self=this

之后,您可以使用self.setStyle('color','green')

顺便提一下,一个建议是,最好也有一个绿色的类,并在点击时切换它们

下面是一个代码建议:

$$('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中使用如下内容:

$$('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]);
    }
);
.green {
    color: green;
}

这和你要找的东西有关吗?:没错@Sergio:)明白了,重点是“自我”变量。。。非常感谢,谢谢。我在最后一行做了一个小小的改动,这是对你有用的描述的尊重。@MortezaE,太好了!顺便说一句,如果该链接有href,您可能希望有一个
event.stop()
并将
event
传递到事件处理程序中。以防止页面跟随链接。