2013-06-28 14 views
21

Oto przykład wpisu używam:Jak mogę pokazać/ukryć konkretny alert za pomocą twitter bootstrap?

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

wiem, że $(".alert").show() i $(".alert").hide() będzie pokazać/ukryć wszystkie elementy klasy .alert. Nie mogę jednak dowiedzieć się, jak ukryć określony alert, biorąc pod uwagę jego identyfikator.

Chcę uniknąć używania .alert("close"), ponieważ to trwale usuwa alert i muszę mieć możliwość jego przywołania.

+0

Wszelkie selektora CSS w funkcji jQuery '$()' znajdzie elementy pasujące do tego selektora. 'div',' .class_name', '# elem' itp. Będzie nawet robić specjalne selektory, takie jak selektory atrybutu' [id = "id_name"] 'lub' * '. Pomyśl o tym jako o selektorze css i powinieneś czuć się bardziej kreatywny, używając go. –

+0

możesz podać "skrzypce", aby odtworzyć swój problem? – muneebShabbir

+0

Skomentowałem poniżej; Napisałem błędnie '' script src = "http://code.jquery.com/jquery.js"> 'w moim nagłówku (dlatego nic z jQuery nie działało). – royhowie

Odpowiedz

43

Trzeba użyć selektora id:

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

# jest selektor id i passwordsNoMatchRegister to identyfikator div.

+0

OK. Pozwól mi wyjaśnić: Jeśli użyjesz domyślnej metody (dostarczonej przez twitter bootstrap), usuniesz alert całkowicie (co oznacza, że ​​nie można go ponownie wywołać). Wiem, jak zadzwonić za pomocą selektora identyfikatora, ale nie działa on z alertami ładowania początkowego (jak na razie działa tylko wtedy, gdy wywołujesz je według klasy, a nie przez alert - chyba że robię coś całkowicie nie tak). – royhowie

+0

jeśli działa z klasą '.' wtedy jestem pewien, że powinien działać z selektorem id' # '.. upewnij się, że nic nie jest w stanie złamać tego kodu .. i tak ... upewnij się, że wszystkie twoje identyfikatory są ** unikalne ** – bipen

+0

zignoruj ​​powyższe, po prostu spójrz na mój wpis poniżej – royhowie

1

Użyj selektora id #

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

wystarczy użyć identyfikator zamiast klasy ?? Naprawdę nie rozumiem, dlaczego pytasz, chociaż wygląda na to, że znasz Jquery'ego?

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

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

To nie wydaje się działać. – royhowie

1

Możesz po prostu użyć selektora id (#) w ten sposób.

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

Dla wszystkich, którzy odpowiedzieli poprawnie metodą jQuery z $('#idnamehere').show()/.hide(), dziękuję.

Wygląda na to, że <script src="http://code.jquery.com/jquery.js"></script> zawiera błąd w nagłówku (co tłumaczyłoby, dlaczego połączenia alarmowe nie działają na tej stronie).

Dziękuję za milion, ale przepraszam za zmarnowanie twojego czasu!

+3

To dobrze, że znalazłeś prawdziwą przyczynę. FYI .. Jeśli używasz jakichkolwiek kodów javacript/jquery, a jeśli one nie działają, użyj Firebug w chrome lub firefox lub narzędzie programisty in ie, aby sprawdzić, czy w skrypcie jest jakiś błąd. – Ravimallya

37

Dodaj klasę "zwinięcia" do elementu div alertu, a alert będzie domyślnie "zwinięty" (ukryty). Nadal można nazwać pomocą „show”

<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

"zapaść", zamiast "ukryć" - to był klucz, dzięki. – Mike

+0

kreatywny sposób na ponowne wykorzystanie klas Bootstraps. – blackhawk

+0

.Zwiń zestawy "widoczność: brak". Jeśli to zrobisz, metoda .show() nie będzie działać, ponieważ ustawia display: block i nie zmienia widoczności. Klasy Bootstrap "ukryty" również ustawia widoczność: brak, więc nie jest to również możliwe do zastosowania Myślę, że @ william.eyidi zrobiło to lepiej, ale raczej używa prostej klasy zamiast liniowego stylu. –

9

na wierzchu wszystkich poprzednich odpowiedzi, nie zapomnij, aby ukryć swój alert przed użyciem go z prostym style="display:none;"

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

Następnie użyj albo:

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

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

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

masz na myśli wyświetlacz: brak; ? – Ehsan

0

używam tego alertu

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

wielokrotnie na stronie każdym razem, gdy użytkownik aktualizuje wynik powodzeniem:

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

aby ponownie go ukryć, wzywam

$('#successfulSave').addClass('hidden'); 
Powiązane problemy