1

这是我的 fullcalendar 代码,我正在尝试在 Android 的对话框中打开日历事件。我尝试了所有方法和建议,但失败了。谁能建议谁在android中尝试过这个?目前它正在android onClick事件的浏览器中打开,我想在对话框中显示。提前致谢

<html>
<head>
<script src='../jquery/jquery-1.9.1.min.js'></script>
<script src='../jquery/jquery-ui-1.10.2.custom.min.js'></script>
<script src="../jquery/jquery.ui.touch-punch.min.js"></script>
<script src='../fullcalendar/fullcalendar.min.js'></script>
<link href='../fullcalendar/fullcalendar.css' rel='stylesheet' />
<link href='../fullcalendar/fullcalendar.print.css' rel='stylesheet' media='print' />
<script src='../fullcalendar/gcal.js'></script>
<script>

$(document).ready(function() {

    $('#calendar').fullCalendar({
    // US Holidays
    events: 'http://www.google.com/calendar/feeds/usa__en%40holiday.calendar.google.com/public/basic',
    eventClick: function(calEvent, jsEvent, view) {
            alert('Event: ' + calEvent.title);
            alert('Coordinates: ' + jsEvent.pageX + ',' + jsEvent.pageY);
            alert('View: ' + view.name);

            // change the border color just for fun
            $(this).css('border-color', 'red');

            },

        loading: function(bool) {
            if (bool) {
                $('#loading').show();
            }else{
                $('#loading').hide();
            }
        }

    });

});

</script>
<style>

body {
    margin-top: 25px;
    text-align: center;
    font-size: 13px;
    font-family: "Lucida Grande",Helvetica,Arial,Verdana,sans-serif;
    }

#loading {
    position: absolute;
    top: 5px;
    right: 5px;
    font-size: 9px;
    }

#calendar {
    width: 100%;
    margin: 0 auto;
    }

</style>
</head>
<body>
<div id='loading' style='display:none'>Please Wait....Loading....</div>
<div id='calendar'></div>
</body>
</html>
4

1 回答 1

0

我遇到了同样的问题,这里是如何解决它。

出现问题是因为在 Adam Shaw 最出色的 FullCalendar 插件 (v1) 中,他在事件容器鼠标悬停时将事件处理程序懒惰地附加到日历事件。问题是 Android 没有正确实现 mouseover 事件,所以点击处理程序没有被初始化。

一种解决方法是将其插件中的代码从第 1707 行更改为: container.unbind('mouseover').mouseover(function(ev) {

container.unbind('click').click(function(ev) {

但是,这将要求您单击一个事件来初始化任何其他事件,因此如果您在日历事件上有悬停事件(我猜您不会因为您正在做移动开发),此方法将不起作用.

另一种方法,我这样做,但打败了他的懒惰事件初始化,是将以下内容添加到您的日历初始化选项中:

eventAfterAllRender: function(){
  // hack to trigger event binding on android chrome, which doesn't trigger mouseover events
  $('.fc-event').each(function(i, element){
    $(element).trigger('mouseover', {});
  })
}

这样做是立即在日历中的所有事件上触发 mouseover 事件,从而在所有日历事件上触发 attachHandler。

于 2014-02-19T02:01:20.343 回答