Próbuję go zrobić, gdy klikniesz na obrazie, zrobi funkcję w dokumencie.

Teraz mam trochę kłopotów i jestem pewien, że jest to jakiś głupi błąd, ale co jest nie tak?

<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>

Wyświetlają prawidłowo, że wydarzenie OnClick nie działa.

3
user3023566 29 listopad 2013, 03:03

4 odpowiedzi

Najlepsza odpowiedź

Tworzysz elementy z jQuery. Więc po prostu użyj jego metod

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

Lub zamiast tego używasz tej składni

$("<img>", {
    src: item.preview.medium,
    click: function(){showStream(index);}
}).appendTo("#images");
2
Gabriele Petrioli 28 listopad 2013, 23:40

Daj każdemu obrazowi klasę, jak "Leimage".

Utwórz taki słuchacz zdarzeń:

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

Jeśli nie jest to, o co prosisz, musisz być bardziej jasny :)

4
Jonast92 28 listopad 2013, 23:15

Nazwa funkcji po kliknięciu jest pusta?

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

0
leaksterrr 28 listopad 2013, 23:11

Przede wszystkim zestaw identyfikatora obrazu.

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

Po tym użyciu tego kodu:

<script>
    $('#imageId').click(function () {
        alert('It works!');
    });
</script>
0
Dmitry Nichiporenko 1 luty 2018, 23:12