Jquery .show () không tiết lộ div với khả năng hiển thị ẩn


81

Câu hỏi jQuery cơ bản:

Tôi đang cố gắng tiết lộ một divđã được đánh dấu là ẩn bằng jQuery. Nhưng tôi không hiểu lắm

Tôi đã tạo JSFiddle tại đây: http://jsfiddle.net/VwjxJ/

Về cơ bản, tôi muốn sử dụng style="visibility: hidden;"hơn style="display: none;"là muốn không gian của phần tử ẩn được duy trì

Đã thử sử dụng show(), fadeIn()v.v. nhưng không hiệu quả (họ làm cho style="display: none;")

tôi đang làm gì sai


6
Hãy thử thay đổi khung trên jsfiddle của bạn thành jQuery.
a'r

1
@ a'r: Vấn đề vẫn còn . Đây là một phiên bản sửa chữa: jsfiddle.net/fkling/9Z6nt/19
Felix Kling

Trong ví dụ của bạn, bạn đã không thiết lập thư viện phù hợp cho dự án của mình, trong "khung chọn", bạn nên chọn "jQuery".
megas

5
1 để chống lại các downvotes .... mọi người nên dành nhiều thời gian cố gắng để hiểu được vấn đề ...
Felix Kling

5
Tôi nghĩ đó là do những người khác nghĩ rằng bạn quên chọn đúng thư viện (và sau khi thay đổi nó, nó có vẻ hoạt động). Nhưng họ đã không đọc kỹ câu hỏi của bạn và mã. Tại sao bình luận đầu tiên lại nhận được 5 lượt ủng hộ? Vâng, có thể jsfiddle của bạn không đúng, nhưng đó không phải là lý do để phản đối imo. Vấn đề đã rõ ràng ngay cả khi không có điều đó (và nó rất dễ sửa chữa).
Felix Kling

Câu trả lời:


123

Nếu bạn đã ẩn nó với visibility:hiddenthì bạn có thể hiển thị nó với jQuery bằng cách

$(".Deposit").css('visibility', 'visible');

Và trong fiddle bạn đang thiếu jQuery. Đây là bản demo: http://jsfiddle.net/9Z6nt/20/


document.readykhông cần thiết. Mã được chạy onLoad(hộp chọn phía trên khung).
Felix Kling

Ồ, không nhận thấy điều đó, cảm ơn. Nhưng sẽ hữu ích trong mã thực nếu JS được gọi trước khi DOM sẵn sàng.
Muhammad Usman

1
@Imray Nó có. Nó không phải cho giải pháp của visibility:hidden, tôi chỉ sửa một cái của anh ấy.
Muhammad Usman,

11

Theo tài liệu JQuery .show()"gần tương đương với việc gọi .css('display', 'block'), ngoại trừ việc thuộc tính hiển thị được khôi phục về bất kỳ thứ gì ban đầu." Thay vào đó, hãy đặt kiểu một cách rõ ràng. Bạn có thể sử dụng một lớp CSS

.hidden{
    visibility: hidden;
}
.shown{
    visibility: visible;
}

và thiết lập đang sử dụng

$("#yourdiv").removeClass("hidden").addClass("shown");

$("#yourdiv").toggleClass('hidden'); không cần lớp "hiển thị"
Alexander Bird

1
Nó không hoàn toàn giống nhau. Nó phụ thuộc vào các ghi đè tổng quát hơn có thể có trong các phần khác của CSS, nhưng thông thường bạn có thể sẽ bỏ qua điều đó, vâng.
Polymorphix

7

Nếu bạn muốn duy trì không gian của phần tử ẩn, hãy sử dụng độ mờ.

I E:

$('div').fadeTo(500,1) //show
$('div').fadeTo(500,0) //hide

ví dụ:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div style='opacity:0'>
  Test opacity
</div>


<button onclick="$('div').fadeTo(500,1);">Show</button>
<button onclick="$('div').fadeTo(500,0);">Hide</button>


3

Này bạn, fiddle của bạn đang hoạt động chỉ cần chọn framework jQuery trên fiddle. Nếu khả năng hiển thị của nó bị ẩn thì hãy thay đổi thuộc tính khả năng hiển thị css thành hiển thị.

(".Deposit").css('visibility','visible');


2

chúng ta bắt đầu đây :)

$(".Deposit").show();

    $(".Deposit").fadeOut(500,function(){
        $(this).css({"display":"block","visibility":"hidden"});

    });

vâng, đó là vé!
Kirby

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.