2009-08-19 7 views
0

Ich habe einen Link an ein Div-Element angehängt. Und wenn ich auf den Link klicke, möchte ich, dass eine Funktion ausgeführt wird. Um zu überprüfen, ob die Funktion aufgerufen wird, habe ich, als ich auf den Link klickte, in dieser Funktion eine Alarmbox. Aber wenn ich auf den Link klicke, wird keine Warnmeldung angezeigt?Problem mit Klick-Funktion in JQuery

Dies ist die Verknüpfung zum div-Element 'fb _ contentarea _ col2top'.

$("<p class='title2'>Recent Entries | <a id='actions' href='#'>Actions</a> </p>").appendTo("#fb_contentarea_col2top"); 

Wenn ich auf diesen Link klicken, möchte ich diese Funktion

$('#actions').click(function(){ 
    alert("HI"); 

}); 

Aber die Warnung kommt nicht genannt, werden. Was ist der Fehler, den ich mache?

Antwort

5

Sie wollen werden „Klick“ zu leben, ändern:

$("#actions").live("click", function() { 
    alert("hi"); 
}); 

Dadurch werden die Aktionen auf alle #actions binden, die derzeit vorhanden ist, oder in der Zukunft existieren. In Ihrem Fall fügen Sie es später hinzu.

+2

... oder binden das Click-Ereignis, nachdem Sie das Element erstellen. – Kieron

0

Haben Sie das Skript in einem Dokument bereit Block. Anderenfalls verwenden Sie .live außerhalb des Bereitschaftsblocks.

$(function(){ 

    $('#actions').click(function(){ 
     alert("HI"); 

    }); 

}); 
0

Versuchen Sie folgendes:

$("#actions").bind('click', function() { 
    alert("HI"); 
}); 
+0

Was ist der Unterschied zu dem, was sie schon hat? – redsquare

+0

.Live ('click') funktioniert, wie Jonathan vorgeschlagen hat .. – Angeline

+0

.bind und .live sind etwas anders: Live bindet an alle zukünftigen Übereinstimmungen (was kein Problem sein sollte, da IDs eindeutig sein sollten). Ich bin eher daran gewöhnt, .bind zu benutzen, weshalb ich es vorgeschlagen habe. –