3

Hey iv suchte nach einer Lösung mit JQuery oder durch Ändern der twitter-Bootstrap-Klasse, um zu verhindern, dass eine Schaltfläche ihre onclick-Aktion durchführen oder diese deaktivieren. Allerdings fand die Ergebnisse iv bisher nicht richtig durchgeführt und meist nur eine Erscheinung geben deaktiviert werden aber nach wie vor richtig auszuführen:Jquery/Bootstrap deaktivieren Schaltfläche

$("#previous").prop('disabled', true); 
$("#next").prop('disabled', true); 

Der Zweck ist, tauschen Registerkarten zu verhindern, wenn die Registerkarte Index zu hoch oder zu niedrig ist. Die meisten anderen Lösungen scheinen riesige Mengen scheinbar unnötigen Javascript für ein Feature enthalten, das relativ einfach scheint.

wie diese:

$("#previous").click(function() { 
    var me = $(this); 
    me.unbind("click");    
}) 

Welche soll die gebundene Funktion entfernen, würde aber auch bedeuten, das Ereignis wieder anbringen, wenn die Registerkarte Index steigt. Gibt es eine einfachere Lösung, um eine Schaltfläche vorübergehend zu deaktivieren oder einfach zu verhindern, dass die Standardaktion ausgeführt wird, ohne das Ereignis zu entfernen oder das Schaltflächenelement nicht anzuzeigen?

Jede Hilfe würde geschätzt :)

Antwort

7

Wenn Sie Twitter Bootstrap verwenden, gibt es genau dieses Verhalten bereits für Sie implementiert.

Sie müssen nur die Klasse .disabled des Elements, das Sie deaktivieren möchten, ändern.

Like:

$("#previous").addClass('disabled'); 
+0

Hinzufügen solcher Klassen ist nicht die beste Idee, da der Benutzer leicht an den Browser des Elements überprüfen gehen und entfernen Sie diese „disabled“ -Klasse. Es ist am besten, einen zusätzlichen Code mit return false zu schreiben. –

+1

Alle Javascript-Codes laufen auf der Benutzerseite. In einem Benutzer denkend, der unter Verwendung der Entwicklungstools prüft, kann dieser Benutzer fast alles in der Javascript-Logik ändern. Dies sollte nur für besseres Feedback, jede Art von gefährlichem Verhalten sollte im Backend validiert werden. –

1

Sie würden die Standard-Aktion zu verhindern, haben mit event.preventDefault()

$("#previous").click(function(event) { 
    //add logic to attach style behavior here or conditionally prevent default 
     event.preventDefault();  
}); 
1

mich ein einfaches Beispiel zeigen lassen. Hier wird eine Schaltfläche deaktiviert, sobald Sie darauf klicken.

<button class="btn btn-danger">Click Me</button> 

$('.btn-danger').on('click', function() { 

    if ($(this).hasClass('disabled')) { 
     return false; 
    } else { 
     $(this).addClass('disabled'); 
    } 
}); 
Verwandte Themen