J'ai un site Web jQuery Mobile Beta 1 avec jQuery 1.6.1 bouton de lien comme ceci:
<a id="subselection" href="#" data-role="button" data-theme="b">TEST</a>
Et dans document.ready, j'ai défini l'événement click:
$('#subselection').livequery("click", function(){
alert('test');
});
Je veux désactiver ce "bouton de liaison" et j'ai essayé
$('#subselection').button('disable')
Et cette commande définit le style du bouton comme il est désactivé, mais l'événement click fonctionne.
J'ai aussi essayé
$('#subselection').prop('disabled', true);
et $ ('# sous-sélection'). prop ('désactivé'); donne vrai mais ce n'est pas désactivé.
Quelqu'un a une bonne idée.
L'élément a
n'a pas de propriété disabled
. Donc, en définir un n'affectera pas les gestionnaires d'événements que vous pourriez avoir associés.
exemple: http://jsfiddle.net/niklasvh/n2eYS/
Pour une liste des attributs disponibles, consultez la référence HTML 5 .
Pour résoudre votre problème, vous pouvez, par exemple, attribuer la valeur disabled
à data
dans l'élément:
$('#subselection').data('disabled',true);
et dans votre événement, vérifiez si son ensemble:
if (!$(this).data('disabled'))
Exemple de bouton de lien:
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>
REMARQUE: - http://jquerymobile.com/demos/1.0rc2/docs/buttons/buttons-types.html
Les liens stylés comme des boutons ont toutes les mêmes options visuelles que les vrais boutons basés sur un formulaire Ci-dessous, mais il existe quelques différences importantes. Les boutons basés sur des liens ne font pas partie du plugin, mais seulement. utilisez simplement le plugin buttonMarkup sous-jacent pour générer les styles de bouton afin que les méthodes de bouton de formulaire (activer, désactiver, actualiser) ne soient pas prises en charge. Si vous devez désactiver un lien basé sur un bouton (ou n’importe quel élément), il est possible d’appliquer vous-même la classe désactivée ui-désactivé avec JavaScript pour obtenir le même effet.
Pas besoin de jquery/javascript dans ce cas. Ajoutez simplement une classe 'ui-disabled'.
Comme par exemple:
<a class="ui-disabled" id="subselection" href="#" data-role="button" data-theme="b">TEST</a>
C’est ce que je fais et ça marche pour moi;)
essayez d'utiliser
$('#subselection').button().button('disable'); //disable in JQM
$('#subselection').button().button('enable'); //enable in JQM
cela semble fonctionner visuellement pour afficher un style activer/désactiver ... CEPENDANT, le "bouton" est toujours cliquable (alors faites attention!: P)
Je sais que la réponse à cette question est déjà acceptée, mais je pense que cette réponse est beaucoup plus facile à comprendre. Il suffit que la fonction click retourne false.
<a id="subselection" href="#" data-role="button" data-theme="b">TEST</a>
<script>
$('#subselection').click(function() {
alert("do some code here");
return false;
});
</script>
Vous pouvez également utiliser la balise bouton/widget directement <button>TEST</button>
qui est correctement désactivé. Si vous l'utilisez simplement pour attraper un événement et exécuter du JavaScript, vous ne savez pas quel avantage il y aurait à utiliser un lien.