在.click

时间:2019-03-30 22:16:13

标签: javascript jquery html

我目前正在使用API​​调用照片库从Flickr中提取照片。单击主图像后,应该使用较小的尺寸将其附加到“ recentlyViewed” div中。现在,此功能的一部分有效,在单击时它确实会附加到div,但是在单击下一个图像时,最近查看的第一个图像将替换为第二个图像。

$('figure').each(function(index){ // Select all figures using .each 
          $(this).click(function(){ // register this(figure).click(ed) on

            $('recentlyViewed').html($(this).attr('src', $(this).attr('data-square')));

          }); 
        });

所以就像我说的,它只是没有附加到元素上。我试过使用.append和.appendTo,但似乎并没有影响它。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

我们需要看到的不止于此;我们需要能够重现该问题。 而且您不在脚本中的任何地方使用index关键字!

话虽如此,我必须强调以下内容不是真正的解决方案。

因为我不使用jQuery,所以我将尝试为您演示使用纯JavaScript(也被重新命名为Vanilla)的可能解决方案。

  [].slice.call( 
        document.querySelectorAll('figure')
        ).
        forEach( 
              function( x ) {
                    x.onclick = function( ) { /*reg fig clicked here*/ 
                    recentlyViewed.innerHTML = 
                    this.getAttribute('src')+", "+ this.getAttribute('data-square');
                    };             
              }
        );

我们在这里假设:: 1.一个点击的图形应该获得一个点击事件注册,该注册事件链接到一个功能,该功能大概是:     1.a)放弃其内容网址,以及一些自定义的数据正方形属性内容。 2.还假定“ recentlyViewed”是要覆盖的HTML目标内容的ID。