2013-06-15 19 views
8

http://page-test.co.uk/cal/ - FullCalendar bản demojQuery FullCalendar làm việc trên các thiết bị cảm ứng - nhưng vấn đề nhỏ với các sự kiện

tôi đã thiết lập này mà là một thiết lập jQuery FullCalendar cơ bản với các tính năng bổ sung có liên quan để cho phép hỗ trợ trên các thiết bị cảm ứng.

Các tệp được bao gồm trong trang được liên kết là tất cả các tệp mặc định.

Trình diễn hoạt động hoàn hảo trên các thiết bị không chạm, nhưng chạm vào thiết bị.

Thử nghiệm trên iPhone/iPad chủ yếu (các thiết bị cảm ứng khác thực hiện nhiều hoặc ít chính xác hơn) khi một mục được kéo, một mục khác không thể. Vì vậy, bạn có thể kéo bất kỳ mục nào, nhưng sau đó các mục khác bị khóa.

Một số điểm chính:

  • Thay đổi quan điểm (tháng/tuần vv) sau đó cho phép tất cả mọi thứ để được kéo lại

  • Nếu bạn gõ/chạm vào yếu tố khác trước, mà sau đó có thể được kéo , nhưng không phải những người khác cho đến khi bạn chạm vào những người đầu tiên.

  • Trên BlackBerry Playbook, nó thực sự hoạt động hơi khác. Nếu bạn muốn kéo một phần tử khác (thông thường không có gì xảy ra) thì trên PlayBook nó dường như không làm gì cả (khi bạn vuốt ngón tay qua màn hình) - nhưng khi bạn buông bỏ (vẫn chưa có gì xảy ra) khi cho phép nó sẽ chọn phần tử có thể kéo và sau đó bỏ chọn nó. Nếu bạn sau đó đi để kéo yếu tố đó nó hoạt động tốt.

  • Thay đổi hướng của thiết bị sẽ khóa ngay lập tức tất cả các thành phần trên trang và thay đổi chế độ xem thành tháng/tuần hoặc chạm vào yếu tố một lần trước khi thực hiện bất kỳ điều gì.

Tôi đặt cược đây là một sửa chữa một dòng, nhưng tôi đã bỏ ra hàng giờ và không thể làm điều đó.

Tôi chỉ muốn nó hoạt động trên iPad/iPhone.

Có vẻ như mouseup/touchend không kích hoạt thứ gì đó hoặc sự kiện chạm được xóa sau lần kéo đầu tiên, nhưng tôi không thể giải quyết vấn đề.

+0

Cách lịch hiển thị "sự kiện" rất năng động. Các công cụ nội bộ rerenders các sự kiện để nó có vẻ như bạn nên cố gắng ràng buộc các sự kiện liên lạc bằng cách sử dụng 'sống' trong jquery. Có thể thư viện bạn đang sử dụng không làm điều này. Đây là một nỗi đau không chỉ để liên lạc mà còn cho những thứ khác mà tôi phải đối phó. Bạn đã bao giờ sửa lỗi này chưa? Lịch 2 hiện đã hết nhưng tôi không chắc có bao nhiêu vấn đề trong số này khắc phục. – ppumkin

+1

Không, không bao giờ sửa nó và bỏ cuộc. Xin lỗi, không phải câu trả lời tốt nhất để cung cấp cho bạn. Không xem Lịch 2, nhưng có thể thử. – user2143356

+0

apuschak dường như đã tìm thấy một giải pháp với một thư viện khác. – ppumkin

Trả lời

8

Edit:

tôi đã sử dụng Touch Punch và dayRender để cho phép lựa chọn một ngày hoặc nhiều ngày trên một thiết bị cảm ứng. Tôi chỉ cần thêm nguồn và bổ sung chức năng addTouch() từ cảm ứng punch các rendering của tế bào trong ngày:

dayRender: function(date, cell) { 

cell.addTouch(); 

}, 

này ít nhất cho phép bạn chọn một ngày hoặc vài ngày trên một thiết bị cảm ứng, bạn có thể sử dụng các chức năng Touch Punch khác ở nơi khác để làm nhiều hơn nhưng tôi chưa thử nó.


Tôi đang gặp sự cố tương tự với iPad. Tôi đã thử https://github.com/jboesch/jQuery-fullCalendar-iPad-drag-drop cũng như với ứng dụng fullcalendar của tôi và có thể kéo một sự kiện nhưng không thể kéo một sự kiện khác, nó cuộn. Tôi đã tắt tính năng cuộn nhưng vẫn nhận được hành vi tương tự.Tôi cũng đã thử tùy chọn cuối cùng được đề cập ở đây https://code.google.com/p/fullcalendar/issues/detail?id=724&q=ipad&colspec=ID%20Type%20Status%20Milestone%20Summary%20Stars với dự án này https://github.com/joshgerdes/jquery.ui.touch

Tôi cũng muốn thực hiện lựa chọn ngày hoặc giờ để tạo sự kiện. Tôi đã nhìn vào lịch của google trên iPad, nó cũng thiếu chức năng này và họ có một thông báo để sử dụng phiên bản di động nếu nó không hoạt động trên trình duyệt của bạn (safari trên iPad). Phiên bản di động không hiển thị bất kỳ sự kiện nào trong chế độ xem theo tháng nên điều này sẽ không hoạt động như một tùy chọn cho ứng dụng của tôi. Một fullcalendar đầy đủ chức năng với khả năng lựa chọn và kéo thả sẽ là lý tưởng, nhưng các thiết bị cảm ứng có thể không hỗ trợ tốt. Tôi sẽ tiếp tục tìm kiếm giải pháp, nhưng nếu google không cung cấp chức năng, có thể không dễ triển khai và chúng tôi có thể cần cung cấp phiên bản di động và/hoặc không có khả năng lựa chọn và kéo và thả trên màn hình cảm ứng . Tôi cũng rất cảm kích sự giúp đỡ của bất kỳ ai khác.

+1

Bạn đã sửa lỗi này chưa? – ppumkin

+1

Chạm Punch là con đường để đi. Tôi đã thêm vào nguồn Touch Punch, sau đó thêm addTouch vào ô trong DayRender của FullCalendar: 'dayRender: chức năng (ngày, ô) { cell.addTouch(); }, ' Điều đó ít nhất cho phép bạn chọn một ngày hoặc ngày trên iPad. Tôi đã không làm việc trên nó trong một thời gian dài và chưa phát triển thêm nữa. – apuschak

+1

Ồ tuyệt vời! Tôi sẽ xem xét điều đó. Bạn có thể muốn thêm điều đó vào câu trả lời của bạn và tôi chắc chắn OP sẽ đánh dấu nó là đã trả lời ... ngay cả sau tất cả thời gian này :) – ppumkin

1

Sử dụng cảm ứng mạnh mẽ trong cách kéo các sự kiện, thêm mã trong eventRender:

$.support.touch = 'ontouchend' in document; 

if ($.support.touch) { 
    $(element).draggable(); 
} 

để thêm khả năng cảm ứng để daycells sử dụng tập tin liên lạc khác js: https://github.com/joshgerdes/jquery.ui.touch và thêm cell.addTouch() trong dayRender

Trong một vài ngày, tôi cũng sẽ có trong lịch của tôi (dựa trên Fullcalendar)

http://codecanyon.net/user/wolberspl/portfolio?ref=wolberspl

Các vấn đề liên quan