0

グループ内でdivを非表示/表示するメカニズムを実装しようとしています。つまり、グループに対して1つのdivのみを表示したいということです。もちろん、ng-show ディレクティブを使用してこれを実装することもできますが、もっと一般的なものが必要です。

例えば:

<div div-group="mygroup">
  <div id="div1"> ... </div>
  <div id="div2"> ... </div>
  <div id="div3"> ... </div>
</div>

showDiv("div1") のような関数を呼び出すと、他の div (div2 と div3) が非表示になります。すべての内部 div ステータス (表示または非表示) を含むルート スコープにオブジェクトを追加することを考えました。

どうもありがとうございました! ティエリー

4

2 に答える 2

1

1つの方法は、ng-classを使用することです

.show{
display:block
}

.hide{
display:none;
}

<div div-group="mygroup">
  <div id="div1" ng-class={true:'show',false:'hide'}[selecteddiv='div1']> ... </div>
  <div id="div2" ng-class={true:'show',false:'hide'}[selecteddiv='div2']> ... </div>
  <div id="div3" ng-class={true:'show',false:'hide'}[selecteddiv='div3']> ... </div>
</div>

$scope.choose=function(id){
$scope.selecteddiv=id;
}

したがって、適切なIDを関数の文字列として渡すことができます

于 2013-06-27T09:27:41.403 に答える
-2

バニラjsでこれを行いたい場合は、次のshowDivように関数を書くことができます

function showDiv(id) {
  //hide all divs
  document.findElementById('div1').style.display = 'none';
  document.findElementById('div2').style.display = 'none';
  document.findElementById('div3').style.display = 'none';
  //show just the div you want
  document.findElementById(id).style.display = 'block'; //or whatever it was before
}
于 2013-06-27T09:25:31.770 に答える