2017-12-20 8 views
1

私はページ番号をクリックできる場所でポケベルを作ろうとしましたが、色はグレーになります。しかし、それは悲惨に失敗するようです。なぜこのコードはグレイでクリックされたページャ番号を作らないのですか?私は今それをうまくいけばそれは動作するように修正しようとしています。クリックしたときにこのコードがページ番号を灰色にしないのはなぜですか?

function my(i) { 
    document.getElementsByClassName('number')[0].removeAttribute("id"); 
    i.id = "act"; 
} 

.pager li.active > a:active { 
 
    color: grey !Important; 
 
} 
 
     
 
.pager > li > a.right-arrow { 
 
    margin-left: 410px; 
 
    width: 30px; 
 
    border-radius: 50%; 
 
    box-shadow: 0px 0px 5px #9ecaed; 
 
    font-size: 15px; 
 
    padding: 7px; 
 
    line-height: 1; 
 
} 
 

 
.pager > li > a.left-arrow { 
 
    margin-right: 410px; 
 
    width: 30px; 
 
    border-radius: 50%; 
 
    box-shadow: 0px 0px 5px #9ecaed; 
 
    font-size: 15px; 
 
    transform: rotate(180deg); 
 
    padding: 7px; 
 
    line-height: 1; 
 
} 
 
     
 
.number { 
 
    border-color: white !Important; 
 
    padding: 5px !Important; 
 
} 
 

 
a { 
 
    color: black !Important; 
 
} 
 

 
#act { 
 
    color: red !Important; 
 
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> 
 
<div class="text-center"> 
 
    <ul class="pager"> 
 
     <li><a href="#" class="left-arrow">➜</a></li> 
 
     <li><a href="" class="number" id="act" onclick='my(this);'>1</a></li> 
 
     <li><a href="" class="number" onclick='my(this);'>2</a></li> 
 
     <li><a href="" class="number" onclick='my(this);'>3</a></li> 
 
     <li class="number">...</li> 
 
     <li><a href="" class="number" onclick='my(this);'>7</a></li> 
 
     <li><a href="" class="number" onclick='my(this);'>8</a></li> 
 
     <li><a href="" class="number" onclick='my(this);'>9</a></li> 
 
     <li><a href="" class="right-arrow">➜</a></li> 
 
    </ul> 
 
</div>

+0

同様

? – NewToJS

+0

私はスニペットを初めて使っています。ごめんなさい。私は例を貼り付けたものをコピーします。私はインドネシア出身で、良い英語を知らないのはごめんなさい。 –

+2

何かをクリックしたときに何かが起きるようにするには、何らかの種類のイベントリスナ/ハンドラをクリックして適切なアクションで応答する必要があります。私はあなたの現在のコードのようなものは表示されません。さらなる読書(https://stackoverflow.com/questions/6348494/addeventlistener-vs-onclick)を行い、より完全な質問に戻ることをお勧めします。 – souldeux

答えて

1

あなたはそれがグレー色

function my(i){ 
 
    document.getElementById('act').removeAttribute("id"); 
 
i.id = "act"; 
 
}
.pager > li > a { 
 
     color: black !Important; 
 
    } 
 
    .pager >li:active > a:active { 
 
     color: grey !Important; 
 
    } 
 
    
 
     .pager > li > a.right-arrow { 
 
      margin-left: 410px; 
 
      width: 30px; 
 
      border-radius: 50%; 
 
      box-shadow: 0px 0px 5px #9ecaed; 
 
      font-size: 15px; 
 
      padding: 7px; 
 
      line-height: 1; 
 
     } 
 
    
 
     .pager > li > a.left-arrow { 
 
      margin-right: 410px; 
 
      width: 30px; 
 
      border-radius: 50%; 
 
      box-shadow: 0px 0px 5px #9ecaed; 
 
      font-size: 15px; 
 
      transform: rotate(180deg); 
 
      padding: 7px; 
 
      line-height: 1; 
 
     } 
 
    
 
    .number { 
 
     border-color: white !Important; 
 
     padding: 5px !Important; 
 
    } 
 
    #act{ 
 
     color: grey !Important; 
 
    }
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> 
 
<div class="text-center"> 
 
    <ul class="pager"> 
 
     <li><a href="#" class="left-arrow " onclick='my(this);'>➜</a></li> 
 
     <li><a href="" class="number" id=act onclick='my(this);'>1</a></li> 
 
     <li><a href="" class="number" onclick='my(this);'>2</a></li> 
 
     <li><a href="" class="number" onclick='my(this);'>3</a></li> 
 
     <li class="number">...</li> 
 
     <li><a href="" class="number" onclick='my(this);'>7</a></li> 
 
     <li><a href="" class="number" onclick='my(this);'>8</a></li> 
 
     <li><a href="" class="number" onclick='my(this);'>9</a></li> 
 
     <li><a href="" class="right-arrow">➜</a></li> 
 
    </ul> 
 
</div>

0

小さな誤植を生産されていない理由だ背景ではない色に設定していますラTER ...うまくいけば、これは動作するはずです...

.pager > li:active > a:active { 
    color: grey !Important; 
} 

Codepenリンク:https://codepen.io/anon/pen/ppbgBw

+0

はい、クリックするだけで動作します。クリックしたときにどのように灰色にしておくことができますか?私はユーザーがいるページを強調する必要があります –

0

あなたはすべてのリンクのためにあなたのリンクのhref属性内のハッシュタグ(#)を使用する必要があります。あなたがそれを使用していない場合は、 `javascript`をタグ付けしているのはなぜこの

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> 
<div class="text-center"> 
    <ul class="pager"> 
     <li><a href="#" class="left-arrow">➜</a></li> 
     <li><a href="#" class="number">1</a></li> 
     <li><a href="#" class="number">2</a></li> 
     <li><a href="#" class="number">3</a></li> 
     <li class="number">...</li> 
     <li><a href="#" class="number">7</a></li> 
     <li><a href="#" class="number">8</a></li> 
     <li><a href="#" class="number">9</a></li> 
     <li><a href="#" class="right-arrow">➜</a></li> 
    </ul> 
</div> 
+0

私はしましたが、私はそれをアクティブにすることはできません。それがアクティブになった後でのみ、それは黒色に戻ります。これをどうすれば解決できますか? –

+0

数字のいずれかを最初にアクティブにしたい場合は、次のようにする必要があります。https://stackoverflow.com/questions/2147844/how-to-set-a-active-link-as-default-when -page-first-time-load。それがあなたが意味するものなのかどうかわからないのですか? – John

+0

複数の数字に背景が灰色で表示されるようにするには、いくつかのjavascriptを組み込み、アンカーから 'active'クラスを追加または削除する必要があります。次のようなものがあります:https://stackoverflow.com/questions/19142653/adding-removing-class-to-anchor-tag-with-jquery-twitter-bootsrap-buttonsまたはhttps://jaketrent.com/post/ addremove-classes-raw-javascript/ – John

関連する問題