Javascript 如何";撤销;mousedown通过单击另一个元素做了什么?

Javascript 如何";撤销;mousedown通过单击另一个元素做了什么?,javascript,raphael,Javascript,Raphael,这就是鼠标按下所做的: one_element.mousedown(function(){ this.attr({stroke:"#ffffff"}); el2.attr({stroke:'#ffffff'}); el3.attr({stroke:'#ffffff'}); }); 我想在单击另一个元素时撤消它。基本上,笔划将恢复为黑色,单击后为白色。 我非常感谢您的帮助,我知道这是一个基本问题,但它已经困扰了我好几个小时了您的意思是: two_element.mo

这就是鼠标按下所做的:

one_element.mousedown(function(){
    this.attr({stroke:"#ffffff"});

    el2.attr({stroke:'#ffffff'});
    el3.attr({stroke:'#ffffff'});  
});
我想在单击另一个元素时撤消它。基本上,笔划将恢复为黑色,单击后为白色。 我非常感谢您的帮助,我知道这是一个基本问题,但它已经困扰了我好几个小时了

您的意思是:

two_element.mousedown(function(){
    this.attr({stroke:"#000000"});

    el2.attr({stroke:'#000000'});
    el3.attr({stroke:'#000000'});  
});
function myFunction(isOn)
{
  if(isOn){ 
     el1.attr({stroke:'#ffffff'});
     el2.attr({stroke:'#ffffff'});
     el3.attr({stroke:'#ffffff'}); 
  }else{
     el1.attr({stroke:'#000000'});
     el2.attr({stroke:'#000000'});
     el3.attr({stroke:'#000000'}); 
  }
}
假设您的另一个元素称为two_元素


编辑

您可以将此代码放入函数中,并根据选择的元素将其打开/关闭。您的主要功能如下所示:

two_element.mousedown(function(){
    this.attr({stroke:"#000000"});

    el2.attr({stroke:'#000000'});
    el3.attr({stroke:'#000000'});  
});
function myFunction(isOn)
{
  if(isOn){ 
     el1.attr({stroke:'#ffffff'});
     el2.attr({stroke:'#ffffff'});
     el3.attr({stroke:'#ffffff'}); 
  }else{
     el1.attr({stroke:'#000000'});
     el2.attr({stroke:'#000000'});
     el3.attr({stroke:'#000000'}); 
  }
}
Element one可通过以下方式启用此功能:

one_element.mousedown(myFunction(true));
元素2通过以下方式关闭此功能:

two_element.mousedown(myFunction(false));

这看起来像JavaScript,而不是Java。在mousedown上,有十个元素会导致至少四个其他元素的更改。我想知道,一旦单击另一个元素,是否可以用一行代码“撤消”更改。我可以这样做,但我认为有一个更好的方法,把它放在一个单独的函数中,然后根据当前状态切换开/关,怎么样?您可能想在上面的问题中添加更多信息,以获得更符合您需要的答案。是的!这就是我想要的。非常感谢。你能告诉我怎么做吗?我更新了答案。请注意,这是未经测试的,但应该让您朝着正确的方向前进。