사용자가 fullcalendar에서 하루를 클릭하면 qtip을 표시하려고합니다.QTip이 잘못된 위치에 표시됩니다.
이 기능은 Chrome에서 제대로 작동하지만 Firefox와 Internet Explorer에서 qtip이 잘못된 위치에서 열립니다.
다른 요일을 클릭하여 볼 수 있습니다. 때로는 잘못된 위치에서 qtip이 열리고 다른 시간에는 즉시 닫히게됩니다.
이 동작은 $(this).qtip('destroy')
을 사용하지 않고 solo: false
이 정의 된 경우에 발생할 수 있습니다.
처음 셀을 클릭했을 때 동일한 셀 내에서 마우스를 움직이고 올바른 위치에서 qtip 디스플레이를 다시 클릭하면 발생하는 것처럼 보입니다. 그러면 해당 셀은 페이지가 새로 고쳐질 때까지 제대로 작동합니다.
전체 예는 https://gist.github.com/1467702
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="fullcalendar.css">
<link rel="stylesheet" type="text/css" href="jquery.qtip.css">
</head>
<body>
<div id="calendar"></div>
<script type="text/javascript" src="jquery-1.6.3.js"></script>
<script type="text/javascript" src="jquery.qtip.js"></script>
<script type="text/javascript" src="fullcalendar.js"></script>
<script type="text/javascript">
$(function() {
$('#calendar').fullCalendar({
dayClick: dayclick
});
});
function dayclick(date, allday, jsevent) {
var randomContent = new Date().valueOf().toString();
$(this).qtip({
overwrite: true,
content: {
text: randomContent,
title: {
text: 'Testing',
button: 'Close'
}
},
show: {
solo: true,
event: 'click',
ready: true
},
style: {
tip: true
},
position: {
viewport: $(window),
target: 'mouse',
my: 'bottom center',
at: 'top center',
adjust: {
mouse: false
}
},
hide: {
fixed: true,
delay: 300
},
events: {
hide: function() {
$(this).qtip('destroy');
}
}
}, jsevent);
}
</script>
</body>
</html>