2012-01-20 68 views
7

Như bạn có thể nhìn thấy trên liên kết này, http://jsbin.com/ozapol/9,hộp thoại modal Jquery DISABLE thanh cuộn

Jquery vô hiệu hóa các thanh cuộn trên một số phiên bản của trình duyệt IE và các phiên bản mới nhất của chrome. (Tôi chưa thử bất kỳ cách nào khác ...)

Có cách nào để giữ thanh cuộn được bật để có thể cuộn qua hộp thoại dài không?

Cảm ơn bạn! Bye

giải pháp đẹp cho Internet Explorer (Nhờ jk.)

html {overflow-y : scroll} 

workaround tàn bạo dành cho Chrome (Nhờ jk.)

Mở Chrome, jQueryUI hijacks chuột sự kiện trên các thanh cuộn. Điều này giống như một lỗi được đề cập trong các liên kết ở trên. Để loại bỏ những ràng buộc, bạn phải unbind sự kiện mỗi khi bạn tạo một hộp thoại modal:

$("#longdialog").dialog({ 
    open: function(event, ui) { 
     window.setTimeout(function() { 
      jQuery(document).unbind('mousedown.dialog-overlay') 
          .unbind('mouseup.dialog-overlay'); 
     }, 100); 
    }, 
    modal:true 
}); 

Có là ví dụ cuối cùng: http://jsbin.com/ujagov/2

Liên kết đến các báo cáo lỗi:

  1. http://bugs.jqueryui.com/ticket/4671
  2. http://wiki.jqueryui.com/w/page/34725121/Visual-Test-Page-Cleanup
+0

Tại sao bạn không thử thêm một thanh cuộn bên trong hộp thoại? – epignosisx

+0

Vì điều này không có tác dụng trong ứng dụng của tôi ...Xin lỗi –

+0

bản sao có thể có của [Vấn đề về thanh cuộn với hộp thoại Giao diện người dùng jQuery trong Chrome và Safari] (http://stackoverflow.com/questions/1617638/scrollbar-problem-with-jquery-ui-dialog-in-chrome-and-safari) – daniloquio

Trả lời

5

Bạn có thể giữ thanh cuộn kích hoạt với:

html {overflow-y: scroll;} 

Bạn có thể thêm CSS mà lập trình vì vậy nó không ảnh hưởng đến tất cả các trang của trang web và có thể thiết kế.

Và, bạn có thể phải unbind các sự kiện chuột mà hộp thoại modal hijacks:

$("#longdialog").dialog({ 
    open: function(event, ui) { 
     window.setTimeout(function() { 
      jQuery(document).unbind('mousedown.dialog-overlay') 
          .unbind('mouseup.dialog-overlay'); 
     }, 100); 
    }, 
    modal:true 
}); 

Xem Scrollbar problem with jQuery UI dialog in Chrome and Safari

+0

Xin chào, Cảm ơn bạn đã trả lời nhưng tiếc là điều này không có tác dụng. Tôi đã thêm phần CSS này vào mẫu của tôi và nó vẫn không hoạt động: http://jsbin.com/ozapol/5 –

+0

Thực ra nó hoạt động trên trình duyệt Internet nhưng nó không có trên Chrome ... Bất kỳ ý tưởng nào? –

+0

@NicolasThery Hoạt động với tôi trong Chrome trên Mac và PC. Không chắc chắn lý do tại sao nó không hoạt động cho bạn. –

0

Thêm mã sau đây để bạn css-file:

.ui-dialog .ui-dialog-content { 
    overflow-y: scroll; 

} 
#longdialog{ 
    height: 450px; 

} 

Các tràn không hoạt động vì chiều cao được đặt thành tự động, xác định chiều cao cụ thể cho div vùng chứa

+0

Tôi xin lỗi nhưng tôi không muốn thanh cuộn bên trong hộp thoại nhưng cho toàn bộ trang. Tôi không muốn nhiều thanh cuộn trong giao diện của mình. Tôi đã cập nhật ví dụ: http: //jsbin.com/ozapol/9 –

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