2013-02-19 45 views
18

Tôi đã tìm thấy phiên bản mới nhất của jQuery UI (1.10) xóa tùy chọn zIndex. Và nó được xác nhận trên trang web jQuery.Tại sao giao diện người dùng jQuery 1.10 xóa tùy chọn hộp thoại jquery zIndex?

Nó thực sự gây sốc cho tôi. Hãy nghĩ về điều này:

Khi chúng ta có một jqGrid, và sử dụng editrow() hoặc addrow() để mở hộp thoại chỉnh sửa để chỉnh sửa một cái gì đó, và có rất nhiều lĩnh vực bên trong, một số trong đó có sự kiện tự xác định, chẳng hạn như, khi bạn bấm vào nó, nó sẽ hiển thị một hộp thoại jQuery để hiển thị một số mặt hàng treeview để chọn.

Dưới jQuery UI 1.9 (bao gồm), bạn có thể đặt tùy chọn zIndex của hộp thoại jQuery lớn hơn hộp thoại chỉnh sửa jqgrid (hỗ trợ hộp thoại chỉnh sửa jqgrid đặt zIndex), vì vậy hộp thoại jQuery luôn bật và có thể xem và sử dụng.

Trong giao diện người dùng jQuery 1.10, bạn không thể đặt zIndex, vì vậy hộp thoại jQuery luôn nằm sau hộp thoại chỉnh sửa jqgrid.

Tôi nghĩ cảnh tượng này rất phổ biến.

Tại sao giao diện người dùng jQuery 1.10 xóa hộp thoại jQuery zIndex? Làm cách nào để kiểm soát thứ tự z-index khi có nhiều hộp thoại?

Trả lời

26

Tôi nghĩ rằng tôi hiểu sự cố của bạn. Chỉ mục CSS z cho hộp thoại Giao diện người dùng jQuery không đủ cao để luôn hiển thị phía trên nội dung của bạn. Đây là một sửa chữa nhanh:

/* A class used by the jQuery UI CSS framework for their dialogs. */ 
.ui-front { 
    z-index:1000000 !important; /* The default is 100. !important overrides the default. */ 
} 
+1

cảm ơn bạn, tôi nghĩ điều này sẽ khắc phục được. Nhưng tôi muốn hộp thoại jquery không loại bỏ các tùy chọn zIndex. – ivanchain

+0

Giao diện người dùng jQuery là nguồn mở, vì vậy bạn _can_ ảnh hưởng đến nội dung trong đó và những gì bây giờ. Nếu bạn có lý do hợp lệ, họ có thể sẽ lắng nghe bạn. Bạn có thể bắt đầu ở đây: http://contribute.jquery.org/open-source/ – amenthes

+0

Mã này vẫn hoạt động! Cám ơn bạn rất nhiều về điều này. – sim1

6

Chỉ cần đọc những thay đổi-log từ jQuery UI 1.10 (cùng với the bug đó đã được nộp cho nó):

Removed tùy chọn ZIndex

Tương tự như các tùy chọn ngăn xếp, tùy chọn ZIndex là không cần thiết với việc triển khai xếp chồng thích hợp. Chỉ số z được xác định trong CSS và việc xếp chồng hiện được kiểm soát bằng cách đảm bảo hộp thoại tập trung là phần tử "xếp chồng" cuối cùng trong phần tử cha.

Nói cách khác: Bạn nên thuộc tính ngăn xếp các phần tử thay vì "hack" theo cách của bạn để xếp chồng bằng cách sử dụng tùy chọn zIndex.

+6

Nhưng sử dụng tùy chọn zIndex là một cách rất đơn giản để kiểm soát thứ tự z, tôi không nghĩ đó là một "cách hack". Làm thế nào để ngăn xếp các thuộc tính phần tử? Hộp thoại tập trung không phải lúc nào cũng là phần tử xếp chồng cuối cùng trong phần tử cha khi có nhiều đối tượng. – ivanchain

+0

MarcoK, bạn có nghĩa là giao diện người dùng jquery 1.10 sẽ làm cho hộp thoại tập trung được xếp chồng lên đầu tự động không? Tôi thấy nó không phải. Hoặc những gì tôi cần làm để làm cho nó xếp chồng lên hàng đầu? – ivanchain

+4

Có ai có ví dụ về "triển khai xếp chồng thích hợp" sử dụng các phần tử được định vị hoàn toàn không có zIndex không? – JoshNaro

0

Bạn đã thử sử dụng tùy chọn "phụ thêm"? Chỉ cần thêm động một trình bao bọc với chỉ mục z của những gì bạn cần, sau đó sử dụng id của phần tử đó làm công cụ chọn trong đối số "appendTo".

http://api.jqueryui.com/dialog/#option-appendTo

-2
$('#element').dialog({  modal: true, 
          stack: false, 
          zIndex: 9999, 
... 

làm việc cho tôi

+0

Nếu nó hoạt động vì bạn đã sử dụng phiên bản giao diện người dùng jQuery ít hơn 1.10. – Nek

+0

Có, zIndex không được chấp nhận trong ver 1.10 – PapillonUK

2

Nếu bạn muốn áp dụng các ZIndex sử dụng jQuery ngay sau khi bạn khởi tạo hộp thoại, bạn có thể làm như sau:

$('#element').dialog({ your options... }).parent('.ui-dialog').css('zIndex',9999); 
Các vấn đề liên quan