2013-11-28 80 views
2

我试图做到这一点,当你点击一个图像,它会做一个文件内的功能。jQuery onClick图像事件

现在我有一些麻烦,我敢肯定这是一些愚蠢的错误,但这里有什么错?

<script type="text/javascript"> 
$.getJSON("https://api.twitch.tv/kraken/search/streams?q=star&type=suggest&callback=?", function (data) { 
    $i = 0; 
    $.each(data.streams, function (index, item) { 
     $("<img>").attr("src", item.preview.medium).attr("onclick", "").appendTo("#images"); 
     $i++; 
    }); 
}); 
</script> 

它们正确显示,只是onclick事件不起作用。

回答

2

你正在创建使用jQuery元素更清晰:)。 。所以只是使用它的方法

$("<img>") 
    .attr("src", item.preview.medium) 
    .click(function(){ showStream(index);}) 
    .appendTo("#images"); 

您也可以使用这个语法,而不是

$("<img>", { 
    src: item.preview.medium, 
    click: function(){showStream(index);} 
}).appendTo("#images"); 
+0

随着我的功能我怎么会让它调用我的函数showStream与变量$我作为参数?正如你所看到的,我使用$ i作为计数器。我试着在功能大括号showStream($我),但没有任何作品点击。有任何想法吗? – user3023566

+0

@ user3023566更新了答案..但你需要使用'index'而不是'$ i'(*因为范围,否则所有的调用都会使用最后的'$ i' *) –

+0

Nevermind让它工作!谢谢! :) – user3023566

0

点击后功能名称为空白?

$("#something").attr("onClick","new_function()");

0

尝试这种方式;

<script type="text/javascript"> 
$.getJSON("https://api.twitch.tv/kraken/search/streams?q=star&type=suggest&callback=?", function (data) { 

    $.each(data.streams, function (index, item) { 
     $("<img>").attr("src", item.preview.medium).appendTo("#images"); 

    }); 
}); 


$("#images img").on("click",function(e){ 
    alert("your function all") 

    }) 
</script> 
3

给每个图像一个类,像'leImage'。

这样创建一个事件侦听器:

$(".leImage").on("click", function() 
{ 
    // Do stuff, get id of image perhaps? 
    var id = this.id; 
    // or 
    var id = $(this).attr("id"); 
}); 

如果这不是你问那么你将有

0

首先设置图像的ID。

<img src="../images/warning.png" id="imageId"/> 

使用后此代码:

<script> 
    $('#imageId').click(function() { 
     alert('It works!'); 
    }); 
</script>