Eingaben innerhalb Fancybox
Ich habe ein sehr seltsames problem mit Fancybox.
Ich kann nicht scheinen, um die .val() der Eingänge, die angezeigt werden in der Fancybox. Sie haben einen Wert von "". Die Eingänge außerhalb der Fancybox, jedoch die Arbeit.
Mein code:
<script type="text/javascript">
$(document).ready(function() {
$('a#inline').fancybox({
'hideOnContentClick': false,
'frameWidth': 500,
'frameHeight': $('#avatars').height(),
'callbackOnShow':
function() {
$('#gallery div img').click(function(){
$('#inline img').attr('src', $(this).attr('class'));
$('input#avatar').attr('value', $(this).attr('class'));
});
$('button').click(function(){
console.log($('input#search_avatar'));
return false;
});
}
});
});
Und HTML:
<fieldset>
<div id="avatars" style="float:left; width:500px; display:none;">
<form method="post" action="">
<fieldset>
<input type="text" name="search_avatar" id="search_avatar" />
<button id="search_avatar_submit">Filter</button>
</fieldset>
<div id="gallery">
<div><img src="2_s.jpg" class="2_s.jpg" /></div>
</div>
</form>
</div>
<a id="inline" href="#avatars"><img id="avatar" src="file.png" /></a>
<input type="hidden" name="avatar" value="" id="avatar" />
</fieldset>
Also im Grunde. Ich klicke auf den link. Die Fancybox angezeigt. Ich füge den text im input (das ist text), Wenn ich auf die bekomme ich diese (in Firebug):
[input#search_avatar, input#search_avatar This is text]
Wenn ich diese ausführen:
$('#search_avatar').val()
Bekomme ich:
""
Dank!
- Die live () - Funktion in jQuery Ihnen helfen kann, sich. Ich kann nicht schauen Sie in Ihr problem völlig Recht, jetzt, aber das kann die Antwort sein.
- Danke. Ich habe versucht, es über die $('button').klicken Sie auf Ereignis. Aber Nein, funktioniert nicht :(. Wenn ich den Wert manuell, per $('#search_avatar').val('test'). Der Wert ändert. Nach, dass, wenn ich versuchen, es zu bekommen über $('#search_avatar').val() es zeigt sich (Firebug)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fancybox erstellt eine Kopie aller Elemente, die Sie gehen, um anzeigen und stellen Sie Sie in einer separaten Ebene. Im Ergebnis gibt es zwei input-Elemente, die im original, und das man Sie ändern, in einer Fancybox-Fenster.
Hier ist das Bild eine visuelle Erklärung.
So, wenn Sie versuchen Zugriff auf "search_avatar" input-Wert mit diesem code:
jQuery gibt eine leere Zeichenfolge zurück, weil:
Um den Wert des input-Elements, der sich in einer Fancybox-Fenster können Sie einfach erweitern jQuery-Ausdruck:
So, statt dieses:
Können Sie versuchen, den folgenden code:
Hoffe, das macht Sinn und wird Ihnen helfen.
Diese funktioniert wie ein Charme, mit jQuery live-events:
http://docs.jquery.com/Events/live