Witam.
W jaki sposób mogę wykryć kliknięcie w przycisk (input button) który jest nieaktywny (disabled)?
Takie coś nie działa:
https://jsfiddle.net/eruoqsm2/
Witam.
W jaki sposób mogę wykryć kliknięcie w przycisk (input button) który jest nieaktywny (disabled)?
Takie coś nie działa:
https://jsfiddle.net/eruoqsm2/
W teorii nie możesz tego zrobić, gdyż drzewo DOM blokuje zdarzenie kliknięcia na zablokowanym elemencie.
A w praktyce.. spróbuj objąć przycisk jakimś kontenerem i na niego nałożyć zdarzenie kliknięcia, np.
<div id="przycisk">
<button disabled="disabled">Kliknij mnie!</button>
</div>
<script type="text/javascript">
$(document).ready(function(){
$("#przycisk").click(function(){ alert("Kliknięty!"); });
});
</script>
Niestety nie działa to rozwiązanie https://jsfiddle.net/eruoqsm2/
Hmm, nie pomyślałem o dość podstawowej rzeczy - element potomny będzie nad elementem-rodzicem. :P
Jedyne rozwiązanie problemu, jakie przychodzi mi teraz do głowy to utworzenie elementu overlay na absolucie:
<div id="overlay" style="display: table;"></div>
<button disabled="disabled">Kliknij mnie!</button>
#overlay{
position: absolute;
z-index: 999;
width: 100px;
height: 30px;
}
$("#przycisk").click(function(){
alert("Kliknięty");
});
To samo na JSFiddle: https://jsfiddle.net/eruoqsm2/5/
W praktyce mógłbyś napisać skrypt przy użyciu jQuery, który dla każdego (potrzebnego) przycisku z atrybutem disabled tworzyłby overlay (dopasowując automatycznie jego rozmiar do wymiarów i położenia przycisku).