1

我正在尝试使用 JS 应用“选择喜欢”效果,我的函数在 onClick 事件上触发
并更改标签样式,但在选择新标签后标签样式保持不变,
这是第一块代码的主要思想将旧选择重置为默认样式,但不起作用..

function selectEffect(tag){
  //Code to reset to the default style first if something is selected
  var headID = document.getElementsByTagName("head")[0];         
  var cssNode = document.createElement('link');
  cssNode.type = 'text/css';
  cssNode.rel = 'stylesheet';
  cssNode.href = '../static/css/style.css';
  cssNode.media = 'screen';
  headID.appendChild(cssNode);

  //Code to apply a selected like style
  var element = document.getElementById(tag);
  element.style.backgroundColor='#7D9ABE';
  element.style.color='#ffffff';
  element.style.fontWeight='bold';
  }

它有什么问题?,任何帮助表示赞赏.. 谢谢。

4

2 回答 2

2

您需要先保存元素的默认样式,以便之后重新设置。要重置原始元素,您可以跟踪它,也可以简单地默认所有元素。

于 2013-01-03T15:12:47.393 回答
2

在 Stokedout 的建议下,我成功了:

var selectedTag;
function selectEffect(tag){

  if (selectedTag){
    var oldElement = document.getElementById(old_selectedRow);
    oldElement.style.backgroundColor=old_backgroundColor;
    oldElement.style.color=old_color;
    oldElement.style.fontWeight=old_fontWeight;
   }

  var element = document.getElementById(tag);
  element.style.backgroundColor='#7D9ABE';
  element.style.color='#ffffff';
  element.style.fontWeight='bold';
  }

function doit(tag){
   selectEffect(tag)
   selectedTag = tag;
   }


<a onclick="doit('id1');"></a>

似乎是懒惰的代码,但它有效!

于 2013-01-03T15:58:06.617 回答