Verbindliche Click-Ereignis für dynamisch erzeugte div
So, ich bin versucht, zu erstellen eine dynamische Bildergalerie. Und jedes Bild erstellt, würde einen div oben für Benutzer klicken Sie auf. Im nicht binden Sie ein click-Ereignis auf div
Den Code
$(document).ready(function()
{
if()
{
}
else
{
var divImgContainer = '<div id="imgContainer">';
var divInfo = '<div id="info">';
var divDetails = '<div id="details">';
var divImage = '<div id="image">';
var divVote = '<div id ="click">';
for(i=0; i<$ImageArray.length; i++)
{
document.getElementById("container").innerHTML += divImgContainer+divInfo+divDetails+'Caption</div>'+divVote+'</div></div>'+divImage+'<a href="img/'+$ImageArray[i].link +'"><img src="'+$ImageArray[i].thumb+'" /></a></div></div>';
}
$('#click').click(function()
{
alert("click");
});
}
});
Googeln gab zwei populäre Antworten, die man ist $('#click').click(function()
und der andere ist $('#click').live(click,function()
beides funktioniert nicht.
Gibt es eine bestimmte Art und Weise zu binden, klicken Sie auf Veranstaltungen für dynamisch erzeugten div?
- Wenn Sie mit jQuery sind, warum werden Sie Herumspielen mit
innerHTML
? Warum nicht einfach eine jQuery um die Elemente zu erstellen, die in den ersten Platz?
Du musst angemeldet sein, um einen Kommentar abzugeben.
zunächst erstellen Sie nicht mehrere divs mit der gleichen IDs
vorausgesetzt, element-id 'auf' class 'Stimme' und Sie möchten, dass klicken Sie auf jedes div mit der class 'Stimme', versuchen Sie dies:
div.vote
im#container
.Beginnen, die
.live()
Methode war veraltet in jQuery 1.7 und entfernt in jQuery 1.9, sollten Sie nicht benutzen.Erstellen Sie die Elemente, die mit JavaScript, aber du tust es auf die Ladezeit der Seite, und bevor Sie (versuchen zu) binden Sie die event-handler, so dass sollte kein Problem sein.
Jedoch, das problem könnte sein, dass Sie das tun:
Öffnet die
<div id="click">
element, dann sofort enden, damit es nicht scheinen, um beliebige Inhalte haben. Wenn es keinen Inhalt hat, dann ist es schwierig für Sie tatsächlich anklicken.Setzen
außerhalb der
und wenn es nicht funktioniert, dann versuchen Sie es mit
könnte es helfen, Sie
$('#click').click(function()
Außen dokumentieren.ready Funktion hat auch kein Ergebnis und mit `Leben' wirft Fehler