addClass()
,removeClass()
、hasClass()
のメソッドを使用しようとしていました。しかし、この小さなコードは全く動作していませんか?jqueryボタンのカラースイッチが機能しない
すべての3つの機能に関する文書。それはうまくいくはずです。
<!DOCTYPE html>
<html>
<head>
<title>Trials</title>
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<style>
.liked
{
color:red;
}
</style>
</head>
<body>
<br><br><br>
<button id="like1" class="btn likeBtns liked">5<span class="glyphicon glyphicon-heart"></span></button>
<script>
$('.likeBtns').on('click', function(){
var x = $(this).attr('id');
x = "#"+x;
if($("#like1").hasClass("liked"))
{
console.log("has");
$("#like1").removeClass("liked");
}
else
{
console.log("doesnt have");
$("#like1").addClass("liked");
}
});
</script>
</body>
</html>
代わりのチェック何かがクラスを持っている場合は、ちょうど 'toggleClass'を使用しています。オブジェクトがまだ存在しない場合はクラスをオブジェクトに追加し、存在する場合は削除します。 – Goose
良い選択肢、私は今でも同じ問題を試みた。元のコードで問題が見つかりましたか? –
ブラウザでコンソールのエラーを確認できますか?それは正しい方向に向けるべきです。あなたのコードでは、 'x'に言及している行は、その後にセレクタを指定したので無関係です。以下の答えは機能的で、あなたの後ろのものとまったく同じように聞こえる。それはあなたがそれがいくつかのスタイリングの問題のために働いていないと思うかもしれないかもしれません。 – Goose