使用附加图像作为选择器

时间:2017-08-24 19:49:57

标签: javascript jquery

我正在制作一个程序,允许用户通过使用触摸屏从Feed中选择Instagram照片来打印Instagram照片。

然而,一旦我把它们拉进来,我就很难将图像用作选择器。

我按照以下方式提取图像:

image1

为了输出特定图像,我显然需要能够确定选择了哪个图像,因此我尝试使用图像作为选择器(在此示例中,{{1} })。但是,我似乎无法说服下面的工作:

$(document).ready(function(){
    $("#image1").on("click", function(){
        window.print();
    });
});

当我使用$("div")作为选择器时它确实有用,但这对确定单击哪个图像显然没什么帮助。

(我还没有完全正确地输出所有内容 - 因此我使用window.print()的原因

有谁可以指出我哪里出错了?谢谢!

3 个答案:

答案 0 :(得分:1)

您正在提取图像并动态添加它们,因此当文档准备就绪时,选择器$('#image1')不存在。

您可以做的是选择$("div")并在该div中选择图像。

$(document).ready(function(){
    $("#div").on("click","#image1" function(){
        window.print();
    });
});

答案 1 :(得分:1)

好吧,我不知道你是否真正初始化了标识符'或不,如果没有,那么你可能没有创建" image1"。

的ID

也就是说,更简单的方法是将click事件绑定到匹配div的所有图像子项的选择器,然后从事件中获取单击事件:

$(" div> img")。on("点击",功能(e){console.log($(this).attr(' src& #39;));})

这应该记录您与点击的标签相关联的图像的网址。

答案 2 :(得分:1)

似乎问题是你甚至在创建图像之前就绑定了事件。您必须在创建元素之后绑定事件,即在这种情况下,在ajax方法的成功函数中。 喜欢这个

$.ajax({
url: 'https://api.instagram.com/v1/tags/' + hashtag + '/media/recent',
dataType: 'jsonp',
type: 'GET',
data: {access_token: token, count: num_photos},
success: function(data){
    console.log(data);
    for(x in data.data){
        identifier++;
        $('div').append('<img id="image' + identifier + '" src="'+data.data[x].images.standard_resolution.url+'"></img>');
        }
$("#image1").on("click", function(){
        window.print();
    });
    },
    error: function(data){
        console.log(data);
    }
});