javascript - 多次显示同一图像。使用 JQuery 一次只更改一个

标签 javascript jquery html

我在页面上多次显示灰色星形或蓝色星形的图像。当我点击灰色星星时,它应该变成蓝色。当我点击蓝色星星时,它应该变成灰色。现在,当我点击一颗星星时,它会改变所有星星。我如何一次只更改一张图片?

这是在我的 root.html.erb 中

<img class="star-pic" src="/assets/star-gray.png">

这是在我的 javascript/application.js 中

$(document).ready(function(){

  function changeStar(){
    if($(".star-pic").attr("src") == "/assets/star-gray.png"){
      $(".star-pic").attr("src", "/assets/star-blue.png")
    }
    else{
      $(".star-pic").attr("src", "/assets/star-gray.png")
    }
  }

  $(".star-pic").on("click", changeStar)

})

如有任何建议,我们将不胜感激。谢谢。

最佳答案

在您的函数 changeStar() 中,您将在单击任何图像时选择所有图像并因此更改所有图像。使用 $(this) 选择被点击的元素并仅更改它。

$(document).ready(function() {
  function changeStar() {
    if ($(this).attr("src") == "/assets/star-gray.png") {
      $(this).attr("src", "/assets/star-blue.png")
    } else {
      $(this).attr("src", "/assets/star-gray.png")
    }
  }

  $(".star-pic").on("click", changeStar)
})

关于javascript - 多次显示同一图像。使用 JQuery 一次只更改一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44854298/

相关文章:

javascript - 不显示 HTML 类别

javascript - 移动 Chrome 上的 IFrame 播放器 API

html - 先进的粘性定位

javascript - 保留 html o/p 中的空格

javascript - jQuery : find length of mixed list

javascript - CSS 溢出-y : scroll overwrite my code and other functions not working

javascript - Bootstrap 选择菜单 - 添加新选项

php - 如何使用 ajax 从 PHP 循环逐步更新 div?

javascript - 类型错误 : [API] is undefined in content script or Why can't I do this in a content script?

javascript - AngularJS 动态表单字段验证