我有这个奇怪的问题。当我将带有datepicker类的输入放入fyncybox包装时,当我点击该输入时,datepicker不会显示。
<a href="#test" class="fancybox">Open</a>
<div id="test" style="display:none;width:300px;">
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque blandit, mi sed
</p>
<input type="text" class="datepicker"/>
</div>
$(".datepicker").datepicker();
$(".fancybox").fancybox({
openEffect : 'none',
closeEffect : 'none',
afterLoad : function() {
this.inner.prepend( '<h1>1. My custom title</h1>' );
this.content = '<h1>2. My custom title</h1>' + this.content.html();
}
});
在小提琴上看到这个example。
提前致谢; - )
答案 0 :(得分:3)
您好我最终找到了这两个解决方案:
FIRST: fiddle of first solution here
$(document).on('click', '.datepicker', function(){
if (!$(this).hasClass('hasDatepicker')) {
$(this).datepicker(); $(this).datepicker('show');
}
});
$(".fancybox").fancybox({
openEffect : 'none',
closeEffect : 'none',
afterLoad : function() {
this.inner.prepend( '<h1>1. My custom title</h1>' );
this.content = '<h1>2. My custom title</h1>'+ this.content.html();
}
});
SECOND: fiddle of second solution here
$(".datepicker").datepicker();
$(".fancybox").fancybox({
openEffect : 'none',
closeEffect : 'none'
});
答案 1 :(得分:0)
这一行让jquery ui感到困惑,因为你正在复制html。
this.content = '<h1>2. My custom title</h1>' + this.content.html();
删除display: none
时,您可以看到这种情况。尝试将html添加到原始div中,这样可以正常工作:
$(".fancybox").fancybox({
openEffect : 'none',
closeEffect : 'none',
afterLoad : function() {
$("#test").prepend( '<h1>1. My custom title</h1>' );
$("#test").prepend('<h1>2. My custom title</h1>');
}
});