【发布时间】:2009-09-27 05:37:55
【问题描述】:
我对 Fancybox 有一个非常奇怪的问题。
我似乎无法获得 Fancybox 中显示的输入的 .val()。它们的值为“”。然而,Fancybox 之外的输入仍然有效。
我的代码:
<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;
});
}
});
});
还有 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>
基本上是这样。我点击链接。 Fancybox 出现了。我在输入中添加文本(这是文本),当我点击时我会得到这个(在 Firebug 中):
[input#search_avatar, input#search_avatar This is text]
当我执行这个时:
$('#search_avatar').val()
我明白了:
""
谢谢!
【问题讨论】:
-
jQuery 中的 live() 函数可能会对您有所帮助。我现在无法全面调查您的问题,但这可能是您的答案。
-
谢谢。我在 $('button').click 事件上尝试过。但是不,不起作用:(。当我通过 $('#search_avatar').val('test') 手动设置值时。值会发生变化。之后,当我尝试通过 $('#search_avatar 获取它时').val() 它出现了(萤火虫)