У меня проблема с изменением цвета значка fa-thumbs-up с помощью jquery для события click - PullRequest
0 голосов
/ 04 ноября 2019

Я сделал голосование по сообщениям в моем проекте.

, который работает нормально, но у меня есть проблема с изменением цвета на значке fa-thumbs-up, когда он щелкает.

нижемой код.

$(document).ready(function() {
  $(".vote_buttoon").click(function() {
    $(this).addClass('active_vote');
    var suggestion_id = $('.active_vote .fa-thumbs-up').css("color", "blue");
  });
});
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<div id="mitem1" class="makemoney">
  <h2 class="title"><b>Item 1</b></h2>
  <p>The “<a href="https://en.wikipedia.org/wiki/Disney_Vault" target="_blank" rel="noopener noreferrer">ABC</a>” XXX</p>
  <p>XXX</p>
  <p>XXX</p>
  <p>XXX</p>
  <p>XXX</p>
  <p>XXX</p>
  <div class="up-down-vote-sec">
    <a class="up vote_buttoon"><i class="fa fa-thumbs-up" aria-hidden="true"></i></a>
    <a class="down vote_buttoon"><i class="fa fa-thumbs-down" aria-hidden="true"></i></a>
    <div class="rating"> 0 points</div>
  </div>
</div>

но у меня есть проблема с цветом, похожим на обычный цвет fa fa-thumbs-up черный, но когда пользователь нажимает на fa fa-thumbs-upон меняет цвет, например, синий, или, если пользователь нажимает на fa-thumbs-down, он меняет цвет, как красный.

, но он не работает.

может кто-нибудь помочь мне с этим.

Ответы [ 4 ]

2 голосов
/ 04 ноября 2019

Вы можете просто использовать toggle class и применять css для изменения цвета и up and down both should not be clicked together

$(document).ready(function() {
  $(".vote_buttoon").click(function() {
    $(".vote_buttoon").removeClass('active_vote');
    $(this).toggleClass('active_vote');
  });
});
.up.active_vote .fa{
  color: #0000ff;
}

.down.active_vote .fa{
  color: #ff0000;
}
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<div id="mitem1" class="makemoney">
  <h2 class="title"><b>Item 1</b></h2>
  <p>The “<a href="https://en.wikipedia.org/wiki/Disney_Vault" target="_blank" rel="noopener noreferrer">ABC</a>” XXX</p>
  <p>XXX</p>
  <p>XXX</p>
  <p>XXX</p>
  <p>XXX</p>
  <p>XXX</p>
  <div class="up-down-vote-sec">
    <a class="up vote_buttoon"><i class="fa fa-thumbs-up" aria-hidden="true"></i></a>
    <a class="down vote_buttoon"><i class="fa fa-thumbs-down" aria-hidden="true"></i></a>
    <div class="rating"> 0 points</div>
  </div>
</div>
0 голосов
/ 04 ноября 2019

Попробуйте это:

$(".fa-thumbs-up").click(function() {
    $(this).css("color", "blue");
    });
   $(".fa-thumbs-down").click(function() {
   $(this).css("color", "red");
  });
 <div id="mitem1" class="makemoney">
  <h2 class="title"><b>Item 1</b></h2>
  <p>The “<a href="https://en.wikipedia.org/wiki/Disney_Vault" target="_blank" rel="noopener noreferrer">ABC</a>” XXX</p>
  <p>XXX</p>
  <p>XXX</p>
  <p>XXX</p>
  <p>XXX</p>
  <p>XXX</p>
  <div class="up-down-vote-sec">
    <a class="up vote_buttoon"><i class="fa fa-thumbs-up" aria-hidden="true"></i></a>
    <a class="down vote_buttoon"><i class="fa fa-thumbs-down" aria-hidden="true"></i></a>
    <div class="rating"> 0 points</div>
  </div>
</div>
0 голосов
/ 04 ноября 2019

Просто чтобы показать, что это может быть легко обработано ванильным Javascript, вот как я решил бы это:

// the native version of $(document).ready()
document.addEventListener('DOMContentLoaded', function() {
  // add a so-called delegate listener on the parent element
  document.querySelector('.up-down-vote-sec').addEventListener('click', function(event) {
    switch (true) {
      // if thumbs up was clicked on
      case event.target.matches('.fa-thumbs-up'):
        event.target.style.color = 'blue';
        break;
      // if thumbs down was clicked on
      case event.target.matches('.fa-thumbs-down'):
        event.target.style.color = 'red';
        break;
      // something else was clicked, nothing to do here
      default:
    }
    event.target.classList.add('active_vote');
  });
});
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<div id="mitem1" class="makemoney">
  <h2 class="title"><b>Item 1</b></h2>
  <p>The “<a href="https://en.wikipedia.org/wiki/Disney_Vault" target="_blank" rel="noopener noreferrer">ABC</a>” XXX</p>
  <p>XXX</p>
  <p>XXX</p>
  <p>XXX</p>
  <p>XXX</p>
  <p>XXX</p>
  <div class="up-down-vote-sec">
    <a class="up vote_buttoon"><i class="fa fa-thumbs-up" aria-hidden="true"></i></a>
    <a class="down vote_buttoon"><i class="fa fa-thumbs-down" aria-hidden="true"></i></a>
    <div class="rating"> 0 points</div>
  </div>
</div>

Если что-то неясно, оставьте комментарий.

0 голосов
/ 04 ноября 2019

Я добавил строку для красного цвета значка большого пальца вниз. Поправьте меня, если я ошибаюсь, но, похоже, уже работает:

$(document).ready(function() {
	$(".vote_buttoon").click(function(){
		$(this).addClass('active_vote');
		$('.active_vote .fa-thumbs-up').css("color", "blue");
		$('.active_vote .fa-thumbs-down').css("color", "red");
	});
});
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<div id="mitem1" class="makemoney">
	<h2 class="title"><b>Item 1</b></h2>
	<p>The “<a href="https://en.wikipedia.org/wiki/Disney_Vault" target="_blank" rel="noopener noreferrer">ABC</a>” XXX</p>
	<p>XXX</p>
	<p>XXX</p>
	<p>XXX</p>
	<p>XXX</p>
	<p>XXX</p>
	<div class="up-down-vote-sec">
		<a class="up vote_buttoon"><i class="fa fa-thumbs-up" aria-hidden="true"></i></a>
		<a class="down vote_buttoon"><i class="fa fa-thumbs-down" aria-hidden="true"></i></a>
		<div class="rating"> 0 points</div>											
	</div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...