1

JSで「selectlike」効果を適用しようとしています。関数は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 に答える