javascript - imageSwap onClick 通过 javascript 未触发

标签 javascript ruby-on-rails

following example 中所示

交换图像的脚本(通过 Rails <%= javascript_tag do %> 生成) 标签)

<script>
//<![CDATA[

$("input[type=radio]").on("change", function() {
      var Frame_image = $("input[name=Frame]:checked").val();
      $("#Frame").attr("src", "/Mirra_2/small/Frame_" +  Frame_image  + ".png");
})

//]]>
</script>

基于来源(片段)

<table> <tr>
  <td style='vertical-align: top;'>
      <label><input type="radio" class='imagepick' id="Frame_6K8" name="Frame" value="6K8"><img src="/assets/Mirra_2/colours/6K8-f0d0fc886240ff430ef97b3f98ac23bf26f290b772bcb840460549cd61d15028.jpg" />Studio White / H-Alloy</label>
  </td>
  <td style='vertical-align: top;'>
    <label><input type="radio" class='imagepick' id="Frame_6K7" name="Frame" value="6K7"><img src="/assets/Mirra_2/colours/6K7-8052fe7aa605d525981035af0c1367d1d3808390b63bb29437f515cc63b58e8c.jpg" />Graphite / H-Alloy</label>
  </td> [...]

注意初始图像位于正文的第一部分

JavaScript 没有在控制台中生成任何错误。要交换的图像已存在。然而,单击选项不会导致图像交换。

这是为什么?

最佳答案

遇到此类问题,请花时间调试代码,看看出了什么问题,并验证每一步是否得到了预期的结果。

如果您添加了这样的 console.log() 调用,您很快就会发现没有带有 Frame id 的元素。

$("input[type=radio]").on("change", function() {

      var Frame_image = $("input[name=Frame]:checked").val();
      console.log(Frame_image);
      console.log("#Frame");
      $("#Frame").attr("src", "/Mirra_2/small/Frame_" +  Frame_image  + ".png");
})

关于javascript - imageSwap onClick 通过 javascript 未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57543353/

相关文章:

ruby-on-rails - 无法使用 rspec stub 辅助方法

javascript - 从导航底部而不是页面顶部滚动到 Div

javascript - NetSuite - 从日期计算中排除周末

javascript - 确保元素保持指定的纵横比

ruby-on-rails - Git push Heroku master 需要永远

ruby-on-rails - Ruby on Rails 和 Rake 问题:未初始化的常量 Rake::DSL

ruby-on-rails - 这些奇怪的字符是什么意思?

javascript - Angular Protractor executeScript/executeAsyncScript : Maximum call stack size exceeded

javascript - 如何将两个或多个包含多个对象的数组合并为一个并增加它们的 ID?

ruby-on-rails - 使用子类 Controller 设计 'translation missing' 错误