2013-11-28 113 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>