2017-01-04 7 views
1

私はクリック機能で非常に簡単なaddClass()を持っていて、なぜ動作しないのだろうと思っていました。 $('#wicked')$('div')に変更すると、クリック機能が正常に動作します。jQuery addClassがIDと連携していません

$(document).ready(function() { 
 
    $('#wicked').click(function() { 
 
    $(this).addClass('blueBack'); 
 
    }); 
 
});
#wicked { 
 
    background-color: #ABCDEF; 
 
    font-size: 20px; 
 
    border-radius: 20px; 
 
    border-style: none; 
 
    padding: 25px; 
 
} 
 
.blueBack { 
 
    border-color: #000; 
 
    border-style: solid; 
 
}
<div id="wicked">Test Button</div> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> 
 
<script type='text/javascript' src='app.js'></script>

+1

あなたのセレクタにより 'border-style:none;'の方が優先度が高くなります。 https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity – j08691

+0

技術的には、この質問はjQueryやJavaScriptとは関係ありません。あなたのスタイルを手動で適用し、結果は同じです。ブラウザの組み込みの開発者ツールを使って基本的なデバッグ方法を学ぶ必要があります。どのクラスやルールが適用されているかを示しています – j08691

答えて

5

これは、実際にはうまく働いています。 CSSはあなたのスタイルを単純に上書きしています。

css idでは、classよりも高い優先度を持ちます。したがって、idの枠線スタイルはnoneであることがルールよりも重要であるか、またはsolid境界がclassにあることが重要です。

+0

これをどう説明しますか: "_ ( 'div')、クリック機能はうまく動作します._ – zgood

+1

@zgood実際にはありません。これは、両方の場合で同じ効果があります。 https://jsfiddle.net/bvxoz4b6/ –

+0

ya私はあなたに同意し、私はあなたが正しいと思う、私はちょうどそのOPの声明を説明しようとしていた - おそらく彼は間違っている? – zgood

関連する問題