Som zmätený, keď ide o vypnutie prvku <button>
, <input>
alebo <a>
s triedami: .btn
alebo .btn-primary
, pomocou JavaScriptu/jQuery.
Použil som na to nasledujúci úryvok:
$('button').addClass('btn-disabled');
$('button').attr('disabled', 'disabled');
$('button').prop('disabled', true);
Takže ak môjmu prvku poskytnem len $('button').addClass('btn-disabled');
, vizuálne sa bude javiť ako vypnutý, ale jeho funkčnosť zostane rovnaká a napriek tomu bude klikateľný, takže to je dôvod, prečo som do prvku pridal nastavenia attr
a prop
.
Vyskytol sa u niekoho rovnaký problém? Je to správny spôsob, ako to urobiť - pri použití Twitter's Bootstrap?
Najjednoduchší spôsob, ako to urobiť, je použiť atribút disabled
, ako ste to urobili vo svojej pôvodnej otázke:
<button class="btn btn-disabled" disabled>Obsah tlačidla</button>
Twitter Bootstrap zatiaľ'nemá metódu na vypnutie funkcie tlačidla'bez použitia atribútu disabled
.
Napriek tomu by to bola vynikajúca funkcia, ktorú by mohli implementovať do svojej javascriptovej knižnice.
Akýkoľvek atribút je pridaný k tlačidlu/ukotveniu/odkazu, aby ho zakázal, bootstrap mu len pridá štýl a používateľ naň bude môcť kliknúť, kým bude existovať udalosť onclick. Takže mojím jednoduchým riešením je skontrolovať, či je vypnuté, a odstrániť/pridať udalosť onclick:
if (!('#button').hasAttr('disabled'))
$('#button').attr('onclick', 'someFunction();');
else
$('#button').removeattr('onclick');