Ich habe eine jQuery Mobile Beta 1-Website mit einem Link-Button wie diesem:
<a id="subselection" href="#" data-role="button" data-theme="b">TEST</a>
Und in document.ready habe ich das Click-Event gesetzt:
$('#subselection').livequery("click", function(){
alert('test');
});
Ich möchte diesen "Link-Button" deaktivieren und habe es versucht
$('#subselection').button('disable')
Und dieser Befehl setzt den Schaltflächenstil so, als wäre er deaktiviert, aber das Klickereignis funktioniert.
Ich habe es auch versucht
$('#subselection').prop('disabled', true);
und $ ('# subselection'). prop ('disabled'); Gibt wahr, aber es ist nicht deaktiviert.
Jemand hat eine gute Idee.
Das Element a
hat keine Eigenschaft disabled
. Wenn Sie also einen definieren, hat dies keine Auswirkungen auf Event-Handler, die Sie möglicherweise daran angehängt haben.
beispiel: http://jsfiddle.net/niklasvh/n2eYS/
Eine Liste der verfügbaren Attribute finden Sie in der HTML 5-Referenz .
Um Ihr Problem zu lösen, können Sie stattdessen beispielsweise die disabled
als data
im Element zuweisen:
$('#subselection').data('disabled',true);
und dann in Ihrer Veranstaltung überprüfen, ob es eingestellt ist:
if (!$(this).data('disabled'))
beispiel: http://jsfiddle.net/niklasvh/n2eYS/5/
Beispiel für die Schaltfläche "Link":
JS
var clicked = false;
$('#myButton').click(function() {
if(clicked === false) {
$(this).addClass('ui-disabled');
clicked = true;
alert('Button is now disabled');
}
});
$('#enableButton').click(function() {
$('#myButton').removeClass('ui-disabled');
clicked = false;
});
HTML
<div data-role="page" id="home">
<div data-role="content">
<a href="#" data-role="button" id="myButton">Click button</a>
<a href="#" data-role="button" id="enableButton">Enable button</a>
</div>
</div>
HINWEIS: - http://jquerymobile.com/demos/1.0rc2/docs/buttons/buttons-types.html
Verknüpfungen, die wie Schaltflächen gestaltet sind, haben alle die gleichen visuellen Optionen wie die form-basierten Schaltflächen von true , Es gibt jedoch einige wichtige Unterschiede. Verknüpfungsbasierte Schaltflächen sind nicht Teil des Schaltflächen-Plugins und nur darin enthalten Verwenden Sie einfach das zugrunde liegende buttonMarkup-Plugin, um die Schaltflächenstile zu generieren, sodass die Formularschaltflächenmethoden (Aktivieren, Deaktivieren, Aktualisieren) nicht unterstützt werden. Wenn Sie einen Link deaktivieren müssen -Taste (oder ein beliebiges Element), es ist möglich, die deaktivierte Klasse ui-disabled selbst mit JavaScript anzuwenden, um denselben Effekt zu erzielen.
In diesem Fall ist kein Javascript erforderlich. Fügen Sie einfach eine "Ui-disabled" -Klasse hinzu.
Wie zum Beispiel:
<a class="ui-disabled" id="subselection" href="#" data-role="button" data-theme="b">TEST</a>
Das ist was ich tue und es funktioniert für mich;)
versuchen Sie es mit
$('#subselection').button().button('disable'); //disable in JQM
$('#subselection').button().button('enable'); //enable in JQM
dies scheint visuell zu funktionieren, um einen Deaktivierungs-/Aktivierungsstil darzustellen ... JEDOCH kann der "Button" immer noch angeklickt werden (also aufgepasst!): P
Ich weiß, dass es bereits eine akzeptierte Antwort darauf gibt, aber ich denke, diese Antwort ist viel einfacher zu verstehen. Lassen Sie einfach die Klickfunktion false zurückgeben.
<a id="subselection" href="#" data-role="button" data-theme="b">TEST</a>
<script>
$('#subselection').click(function() {
alert("do some code here");
return false;
});
</script>
Sie können alternativ einfach den Button-Tag/das Widget direkt <button>TEST</button>
verwenden, der ordnungsgemäß deaktiviert wird. Wenn Sie nur ein Ereignis abfangen und JavaScript ausführen, können Sie nicht sicher sein, welchen Vorteil die Verwendung eines Links hat.