【问题标题】:JQuery won't call on image click [closed]JQuery不会调用图像点击[关闭]
【发布时间】:2015-11-16 11:43:21
【问题描述】:

所以我创建了一个 jquery 调用来检查一系列图像中具有相同帐户名称:.account-img 的图像是否被点击。

我像这样通过 PHP 加载图像:

<?php
    foreach($accountsArray as &$acc) {
        echo ('
            <!--<div class="col-md-2 col-sm-6">-->
                <img class="img-thumbnail account-img" src="https://twitter.com/'.$acc['screen_name'].'/profile_image?size=original" alt="Profile Image" id="img-'.$acc['screen_name'].'" />
            <!--</div>-->
        ');
    }
?>

图片的简写如下:

<img class="img-thumbnail account-img" src="https://twitter.com/BBCNews/profile_image?size=original" alt="Profile Image" id="img-BBCNews" />

这是我用来调用图像点击的 JQuery:

$('.account-img').each(function() {
    var id = $(this).attr('id').split('-');
    var name = id[1];
    $(this).on('click', function() {
        alert(name);
    });
});

编辑:

由于我实际使用的 PHP 代码,它不会是单个元素。它将是多个元素,我想根据每个单独的图像执行一个动作。但是因为事先不知道我的ID,所以我需要这样做

【问题讨论】:

  • 你希望这段代码做什么?您实际上希望将多个 click 处理程序添加到循环中的单个元素,这似乎很奇怪。
  • 并且 id 是 img-BBCNews 而不是 bbcnews
  • 您的代码中也没有 id #bbcnews
  • @RoryMcCrossan 由于我实际使用的 PHP 代码,它不会是单个元素。它将是多个元素,我想根据每个单独的图像执行一个动作。但是因为事先不知道我的 ID,所以我需要这样做
  • @madcrazydrumma:$('#bbcnews') 表示单个元素。如果您有多个具有相同 id 的元素,则您的 HTML 无效并且代码的行为未定义。

标签: javascript php jquery html image


【解决方案1】:

您必须使用click 触发器,如下代码所示....要获取当前图像,请单击您在点击触发器内使用this....

$('.account-img').click(function(){
   alert($(this).attr("id"));
});

【讨论】:

    【解决方案2】:

    如果您要在其上添加点击处理程序,则没有理由对元素进行 foreach。删除 foreach 就足够了。

    $(document).ready(function () {
      $('.account-img').on('click', function() {
        var id = $(this).attr('id').split('-');
        var name = id[1];
        console.log(name);
      });
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <img class="img-thumbnail account-img" src="https://twitter.com/BBCNews/profile_image?size=original" alt="Profile Image" id="img-BBCNews" />

    【讨论】:

      【解决方案3】:

      试试这个:

      $(document).ready(function(){
          $('.account-img').each(function() {
              var id = $('#img-BBCNews').attr('id').split('-');
              var name = id[1];
              $('#img-BBCNews').on('click', function() {
                  alert(name);
              });
          });
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-02
        • 1970-01-01
        • 2012-12-30
        • 2016-02-12
        相关资源
        最近更新 更多