Der click
Handler wird gut eingerichtet. Das Problem ist, dass es bei einem vollständig leeren div eine Höhe von 0
hat (es sei denn, du hast das Styling irgendwo gemacht, das du nicht gezeigt hast), und du kannst es nicht finden, um darauf zu klicken. Zero-height example | source.
Die Lösung ist Inhalt in den div zu setzen, oder es Styling zu geben, es Höhe zu geben:
Content example | source:
var $content=$("<div id='test'>I'm the div!</div>");
$content.click(function(){
console.log('click!');
});
$content.appendTo($('body'));
Styling example | source:
JavaScript:
var $content=$("<div id='test'></div>");
$content.click(function(){
console.log('click!');
});
$content.appendTo($('body'));
CSS:
#test {
height: 20px;
border: 1px solid black;
}
Randbemerkung:
Angenommen habe ich eine Variable, die HTML-Markup speichern:
var $content=$("<div id='test'></div>");
Beachten Sie, dass Sie nicht HTML-Markup zu speichern. Wenn Sie jQuery mit HTML-Markup aufrufen, weisen Sie jQuery an, die relevanten DOM-Elemente zu erstellen und sie in eine jQuery-Instanz zu integrieren.
speichern Markup in einer Variablen, dann würden Sie nur die Zeichenfolge speichern das Markup enthält:
var content="<div id='test'></div>";
Markup ist Text; Elemente sind Objekte.
aktualisieren: Re Sie Ihren Kommentar unten:
ich diesen Code in der Datei js jQuery-Plugin schreiben ... es einige Sache hat?
Es spielt eine Rolle, ob der Code bereits ausgeführt wird, bevor ein Element body
an den Anhang angehängt wird. Ihre letzte Zeile wird ohne ein body
Element fehlschlagen (zum Beispiel, wenn Sie Code sofort beim Laden ausgeführt wird, und es aus dem head
Element geladen wird). Wenn das Element body
bei der Ausführung Ihres Codes vorhanden ist, sollte es in Ordnung sein.
Nein, ich denke, wenn ich eine Höhe einstellen, funktioniert es auch nicht.In meinem realen Fall ist es eine Option tag – hh54188
@ hh54188: Wenn Sie eine Höhe einstellen, funktioniert es. Siehe die Beispiele, die ich hinzugefügt habe. –
@T: in Ordnung ... Ich schreibe diesen Code in jquery-Plugin js-Datei ... hat es etwas zu tun? – hh54188