2013-06-28 27 views
21

Dưới đây là một ví dụ về một cảnh báo tôi đang sử dụng:Làm cách nào để hiển thị/ẩn cảnh báo cụ thể với trình khởi động twitter?

<div class="alert alert-error" id="passwordsNoMatchRegister"> 
    <span> 
    <p>Looks like the passwords you entered don't match!</p> 
    </span> 
</div> 

Tôi biết rằng $(".alert").show()$(".alert").hide() sẽ hiển thị/ẩn tất cả các yếu tố của lớp .alert. Tuy nhiên, tôi không thể tìm ra cách để ẩn một cảnh báo cụ thể, cho id của nó.

Tôi muốn tránh sử dụng .alert("close"), vì điều đó sẽ xóa vĩnh viễn cảnh báo và tôi cần phải nhớ lại.

+0

Bất kỳ selector css trong một hàm jQuery '$()' sẽ tìm thấy các yếu tố khớp với bộ chọn đó. 'div',' .class_name', '# elem' vv Nó thậm chí sẽ thực hiện các bộ chọn đặc biệt như các bộ chọn thuộc tính' [id = "id_name"] 'hoặc' * '. Chỉ cần nghĩ về nó như một bộ chọn css và bạn sẽ cảm thấy sáng tạo hơn khi sử dụng nó. –

+0

bạn có thể cung cấp 'fiddle' để tái tạo vấn đề của bạn không? – muneebShabbir

+0

Tôi đã nhận xét bên dưới; Tôi đã viết sai chính tả '' trong tiêu đề của tôi (đó là lý do tại sao không có gì từ jQuery đang hoạt động). – royhowie

Trả lời

43

Bạn cần phải sử dụng một selector id:

$('#passwordsNoMatchRegister').show(); 
$('#passwordsNoMatchRegister').hide(). 

# là một selector id và passwordsNoMatchRegister là id của div.

+0

OK. Hãy để tôi giải thích: Nếu bạn sử dụng cách mặc định (cái được cung cấp bởi twitter bootstrap), bạn loại bỏ hoàn toàn cảnh báo (nghĩa là nó không thể được gọi lại). Tôi biết cách gọi bằng bộ chọn id, nhưng nó dường như không hoạt động với các cảnh báo bootstrap (cho đến giờ nó chỉ hoạt động nếu bạn gọi chúng theo lớp, không phải bằng cảnh báo - trừ khi tôi đang làm điều gì đó hoàn toàn sai). – royhowie

+0

nếu nó hoạt động với lớp '.' thì tôi chắc chắn nó sẽ hoạt động với bộ chọn id' # '.. đảm bảo không có gì phá vỡ mã này .. và có ... đảm bảo tất cả các id của bạn là ** duy nhất ** – bipen

+0

bỏ qua ở trên, chỉ cần nhìn vào bài viết của tôi dưới đây – royhowie

1

Sử dụng bộ chọn id #

$('#passwordsNoMatchRegister').show(); 
1

Chỉ cần sử dụng ID thay vì lớp ?? Tôi không thực sự hiểu tại sao bạn sẽ hỏi mặc dù có vẻ như bạn biết Jquery?

$('#passwordsNoMatchRegister').show(); 

$('#passwordsNoMatchRegister').hide(); 
+0

Nó dường như không hoạt động. – royhowie

1

Bạn chỉ cần sử dụng bộ chọn id (#) như thế này.

$('#passwordsNoMatchRegister').show(); 
$('#passwordsNoMatchRegister').hide(); 
4

Đối với tất cả các bạn đã trả lời đúng với phương pháp jQuery $('#idnamehere').show()/.hide(), cảm ơn.

Có vẻ như <script src="http://code.jquery.com/jquery.js"></script> bị viết sai chính tả trong tiêu đề của tôi (điều này sẽ giải thích tại sao không có cuộc gọi cảnh báo nào hoạt động trên trang đó).

Cảm ơn một triệu, mặc dù và xin lỗi vì lãng phí thời gian của bạn!

+3

Thật tuyệt khi bạn tìm thấy nguyên nhân thực sự. FYI .. Nếu bạn đang sử dụng bất kỳ mã javacript/jquery và nếu những người không làm việc, sử dụng Firebug trong chrome hoặc firefox hoặc công cụ phát triển trong ví dụ để kiểm tra xem có bất kỳ lỗi trong kịch bản. – Ravimallya

37

Thêm lớp "thu gọn" vào div cảnh báo và cảnh báo sẽ "bị thu gọn" (ẩn) theo mặc định. Bạn vẫn có thể gọi nó là sử dụng "hiển thị"

<div class="alert alert-error collapse" role="alert" id="passwordsNoMatchRegister"> 
    <span> 
    <p>Looks like the passwords you entered don't match!</p> 
    </span> 
</div> 
+0

'thu gọn', thay vì 'ẩn' - đó là chìa khóa, cảm ơn. – Mike

+0

cách sáng tạo để sử dụng lại lớp Bootstraps. – blackhawk

+0

.collapse đặt "mức hiển thị: không có". Nếu bạn làm điều đó, phương thức .show() sẽ không hoạt động vì nó đặt display: block và không thay đổi khả năng hiển thị. Lớp Bootstrap "ẩn" cũng đặt hiển thị: không, vì vậy đây cũng không phải là giải pháp khả thi Tôi nghĩ @ william.eyidi đã làm tốt hơn, nhưng thay vì sử dụng một lớp đơn giản thay vì kiểu nội tuyến. –

9

Trên đầu trang của tất cả các câu trả lời trước, không quên để ẩn cảnh báo của bạn trước khi sử dụng nó với một đơn giản style="display:none;"

<div class="alert alert-success" id="passwordsNoMatchRegister" role="alert" style="display:none;" >Message of the Alert</div> 

Sau đó sử dụng một trong hai:

$('#passwordsNoMatchRegister').show(); 

$('#passwordsNoMatchRegister').fadeIn(); 

$('#passwordsNoMatchRegister').slideDown(); 
+4

bạn có nghĩa là hiển thị: không; ? – Ehsan

0

tôi sử dụng cảnh báo này

<div class="alert alert-error hidden" id="successfulSave"> 
    <span> 
    <p>Success! Result Saved.</p> 
    </span> 
</div> 

lặp đi lặp lại trên một trang mỗi khi người dùng cập nhật Kết quả là thành công:

$('#successfulSave').removeClass('hidden'); 

lại giấu nó, tôi gọi

$('#successfulSave').addClass('hidden'); 
Các vấn đề liên quan