2010-05-03 25 views
6

Tôi có div (hộp) trên trang của mình và tôi đang sử dụng tập lệnh này để hiển thị hộp thoại div dưới dạng hộp thoại. Bên trong div đó tôi có một liên kết siêu, Khi nhấp vào liên kết siêu tôi muốn làm mờ hộp thoại và đóng .. Nội dung của hộp thoại mờ đi, nhưng đường viền của hộp thoại vẫn giữ nguyên. Nếu tôi thêm $ ("# box"). Dialog ('close') vào hàm click sau khi fadeto không có tác dụng .. nó chỉ đóng hoàn toàn hộp thoại. Bất kỳ giúp đỡ? sử dụng jquery-ui-1.7.2Hộp thoại Jquery - không phai mờ trước khi đóng

<script type="text/javascript"> 
      $(document).ready(function(){ 
       $("a#later").click(function() { 

       $("#box").fadeTo('slow', 0); 
       }) 
      }); 
      $(function() { 
       $("#box").dialog({ 
        autoOpen: true, 
        width: 500, 
        modal: true, 

       }); 
      }); 
</script> 

Trả lời

16

Làm thế nào về

$("#box").fadeTo('slow', 0, function() { 
    $("#box").dialog('close'); 
}); 

Bạn muốn gần xảy ra sau khi kết thúc mờ dần, đúng không?

+0

Đó là những gì tôi gọi nó là Tuyệt vời! –

+0

Điều này ditty ít chỉ là những gì tôi cần, và hoạt động tốt trong chrome và FF. Chưa thực hiện bất kỳ thử nghiệm IE nào. –

+2

thực sự, hộp thoại '$ (" # box "). (" Widget "). FadeTo (...)' là tốt hơn bởi vì hình ảnh động mờ dần áp dụng trên toàn bộ hộp chứ không chỉ bên trong. – Sebas

3

thử này, nó có thể làm việc:

$("a#later").click(function() { 
    $("#box").fadeTo('slow', function() { 
     $("#box").dialog("close") 
    }); 
}); 
+0

Không .. nó chỉ đóng, không phai để có hiệu lực. –

+0

tôi đã chỉnh sửa câu trả lời của mình. – GerManson

+0

bạn đang rất gần .. Xem câu trả lời dưới đây .. FadTo cũng cần một tham số thứ hai cho tốc độ. –

1

Hãy thử điều này:

  $(function() { 
       $("#box").dialog({ 
        autoOpen: true, 
        width: 500, 
        modal: true, 
        show: 'blind', 
        hide: 'fade' 
       }); 
      }); 

Kiểm tra các ví dụ ở đây: Animated Dialog

+0

Aw Man .. Nó thậm chí không tải hộp thoại bây giờ, nó ẩn theo mặc định :) –

+0

Tôi đã cập nhật câu trả lời của tôi. – Giorgi

+0

Bây giờ nó tải với một hiệu ứng mờ dần .. nó thậm chí sẽ không đóng hộp thoại –

2

Tôi thử mã của một số Richard bên dưới và nó hoạt động. Bạn có thể cung cấp tên hiệu lực thi hành như là một chuỗi:

$("#dialog").dialog({ 
    hide: "fadeOut" 
}); 

hoặc bạn có thể cung cấp một băm nếu bạn có các tùy chọn bổ sung, chẳng hạn như:

$("#dialog").dialog({ 
    hide: {effect: "fadeOut", duration: 5000} 
}); 
1

đây là mã của tôi:

$(function() { 
$("a#link-id").click(function(){$(".ui-dialog").fadeOut(2000)})}); 

đây là tập lệnh làm việc :). Bạn không cần phải bấm vào nút 'đóng'.

+0

Nhưng nếu có một hộp thoại khác mở ra, nó sẽ mờ đi cả hai! –

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