删除JavaScript行为

时间:2016-12-14 16:23:15

标签: javascript css hover

我需要删除我在div上设置的JavaScript行为。 首先,我设置CSS(这是一个简单的例子):

#redBloc {
  width: 100px;
  height: 50px;
  background-color: #ad3232;
}

#redBloc:hover {
  background-color: #3270ad;
}

好的,出于某些原因,我需要在鼠标悬停在div上时覆盖行为。

var redBloc = document.getElementById('redBloc');
redBloc.onmouseover = function() {
  this.style.backgroundColor = 'red';
};

它的工作方式与我想要的一样。 但是在我的过程中,我需要重置JavaScript行为,以检索我的CSS文件中写的行为。

我该怎么做?

谢谢

修改

我不需要覆盖onmouseleave事件的行为,但稍后在我的代码中,例如按下“禁用行为”按钮。

这是通过@ T.J.Crowder的解决方案解决的。

谢谢大家!

5 个答案:

答案 0 :(得分:3)

我认为你的意思是你要删除特定的背景颜色,以便CSS中的那个可以再次显示(而不是“行为”)。

如果是,请为其指定""

theElement.style.backgroundColor = "";

如果您真的意味着行为,并且您不希望再触发鼠标悬停处理程序,因为您已使用onmouseover分配它,您可以通过分配{来删除它{1}}:

null

答案 1 :(得分:0)

您需要通过运行此代码来删除style属性

var redBloc = document.getElementById('redBloc');
redBloc.removeAttribute('style')

您可以在onmouseleave

上拥有功能
redBloc.onmouseleave = function(){
   this.removeAttribute('style');
}

答案 2 :(得分:0)

null上制作您的元素mouseout,例如:

var redBloc = document.getElementById('redBloc');

redBloc.onmouseover = function() {
  this.style.backgroundColor = 'red';
};

redBloc.onmouseout = function() {
  this.style.backgroundColor = '';
};

请看下面的代码段:

var redBloc = document.getElementById('redBloc');

redBloc.onmouseover = function() {
  this.style.backgroundColor = 'red';
};

redBloc.onmouseout = function() {
  this.style.backgroundColor = '';
};
#redBloc {
  width: 100px;
  height: 50px;
  background-color: #ad3232;
}

#redBloc:hover {
  background-color: #3270ad;
}
<div id="redBloc"></div>

希望这有帮助!

答案 3 :(得分:0)

您可以在用户使用onmouseleave&amp;放弃元素时删除效果null样式属性:

var redBloc = document.getElementById('redBloc');
redBloc.onmouseover = function() {
  this.style.backgroundColor = 'red';
};
redBloc.onmouseleave = function() {
  this.style.backgroundColor = "";
};
<span id="redBloc">Hover me &amp; leave me!</span>

答案 4 :(得分:0)

你想给redBloc提供你的css中定义的id #redBloc的样式...你可以做的是创建一个css类并在其中放置你想要应用于redBloc的所有样式

.redBloc {
  width: 100px;
  height: 50px;
  background-color: #ad3232;
}

然后在您的javascript中,您可以在mouseover上将此类添加到redBloc

var redBloc = document.getElementById('redBloc');
redBloc.onmouseover = function() {
  this.className += " redBloc";

};

这将在redBloc div上添加redBloc css类中定义的样式。希望这有帮助!