jQuery glDatePicker插件未在IE上正确呈现
我在用电话 页面加载时,日历隐藏(沿右侧框)<代码>切换视图被单击,日历被重新呈现和显示<代码>Chrome、FF、Safari,一切正常<代码>即,没有那么多。看起来,在渲染日历时,jQuery glDatePicker插件未在IE上正确呈现,jquery,html,internet-explorer,Jquery,Html,Internet Explorer,我在用电话 页面加载时,日历隐藏(沿右侧框)切换视图被单击,日历被重新呈现和显示Chrome、FF、Safari,一切正常即,没有那么多。看起来,在渲染日历时,width没有按应有的方式应用 <article id="events" class="clearfix hidden-xs"> <header class="clearfix header-title"> <h2 class="row col-sm-8">Upcoming Ev
width
没有按应有的方式应用
<article id="events" class="clearfix hidden-xs">
<header class="clearfix header-title">
<h2 class="row col-sm-8">Upcoming Events</h2>
<a href="/resource-center/calendar-of-events" class="arrow-link gray-medium col-sm-4">All Events <span class="glyphicon glyphicon-arrow-right"></span></a>
</header>
<div class="row">
<section class="col-md-6 col-sm-6">
<div id="calendar"></div>
</section>
<aside id="event-description" class="col-md-6 col-sm-6 gray-light">
<img src="/content/images/events-backsplash.jpg" class="img-responsive" />
<div id="event-data">
....HTML here - not relevant
</div>
</aside>
</div>
</article>
$('#switch-view').click(function (e) {
var $this = $(this);
if ($this.hasClass('list-view')) {
$('#event-description').hide();
var $cal = $('#calendar').glDatePicker(true);
$.extend($cal.options, {
showAlways: false
});
$cal.render();
$cal.hide();
$('#calendar-list').fadeIn();
$this.removeClass('list-view').find('span').text('Calendar View');
}
else {
$this.addClass('list-view').find('span').text('List View');
$('#calendar-list').hide();
$('#event-description').fadeIn(function () {
var $cal = $('#calendar').glDatePicker(true);
$.extend($cal.options, {
showAlways: true
});
$cal.render();
$cal.show();
});
}
e.preventDefault();
});
Chrome
IE
如果我将IE
上的宽度更改为382px
,它将按原样显示
<article id="events" class="clearfix hidden-xs">
<header class="clearfix header-title">
<h2 class="row col-sm-8">Upcoming Events</h2>
<a href="/resource-center/calendar-of-events" class="arrow-link gray-medium col-sm-4">All Events <span class="glyphicon glyphicon-arrow-right"></span></a>
</header>
<div class="row">
<section class="col-md-6 col-sm-6">
<div id="calendar"></div>
</section>
<aside id="event-description" class="col-md-6 col-sm-6 gray-light">
<img src="/content/images/events-backsplash.jpg" class="img-responsive" />
<div id="event-data">
....HTML here - not relevant
</div>
</aside>
</div>
</article>
$('#switch-view').click(function (e) {
var $this = $(this);
if ($this.hasClass('list-view')) {
$('#event-description').hide();
var $cal = $('#calendar').glDatePicker(true);
$.extend($cal.options, {
showAlways: false
});
$cal.render();
$cal.hide();
$('#calendar-list').fadeIn();
$this.removeClass('list-view').find('span').text('Calendar View');
}
else {
$this.addClass('list-view').find('span').text('List View');
$('#calendar-list').hide();
$('#event-description').fadeIn(function () {
var $cal = $('#calendar').glDatePicker(true);
$.extend($cal.options, {
showAlways: true
});
$cal.render();
$cal.show();
});
}
e.preventDefault();
});
…此处为HTML-不相关
$(“#切换视图”)。单击(函数(e){
var$this=$(this);
if($this.hasClass('list-view')){
$(“#事件描述”).hide();
var$cal=$(“#日历”).glDatePicker(true);
$.extend($cal.options){
showAlways:错误
});
$cal.render();
$cal.hide();
$(“#日历列表”).fadeIn();
$this.removeClass('list-view').find('span').text('Calendar view');
}
否则{
$this.addClass('list-view').find('span').text('list-view');
$(“#日历列表”).hide();
$(“#事件描述”).fadeIn(函数(){
var$cal=$(“#日历”).glDatePicker(true);
$.extend($cal.options){
showAlways:真的
});
$cal.render();
$cal.show();
});
}
e、 预防默认值();
});
我发现我必须扩展
选项,并更改showAlways
属性,以便在IE
上正确隐藏/显示。如果我删除了它们,那么在调用$cal.hide()
函数时,日历永远不会隐藏
你可能会认为我可以隐藏日历或者它的容器,但是这个插件的操作方式是它在结束标记之前创建了一个全新的
,并执行它的“位置魔法”
可能不是关于它为什么这样做的问题的答案,但不知何故
IE 11
只是没有在页面加载上正确地收集外径()和偏移()方法
我最后做的是确定浏览器是否确实是IE 11
,然后在初始设置日历之前设置1000ms
的timeout
如果有人有更好的答案,我很想听
接近 你试过了吗:?…这不是jquery ui datepickermy的错,我现在尝试创建fiddle并解决它不能在库的fiddle cos中重复它,你能发送示例吗?现在不做小提琴就很难解决