8
votes

Comment annuler le changement de changement pour des contrôles d'accordéon

$("#accordion").accordion({
    change: function (event, ui) {
        alert('event have to be changed')
    },
    changestart: function (event, ui) {
       return false;
    }
});
Is it possible to cancel the change event?

1 commentaires

cet événement annuler mais l'action travaillant toujours


6 Réponses :


1
votes
event.preventDefault();
event.stopPropagate();

1 commentaires

stoppropagation () , pas "stoppropogate ()"



5
votes

Je ne suis pas sûr de changer, mais pour d'autres événements de JQueryui, retourner False annule l'événement.


1 commentaires

Cela fonctionne car Return False équivaut à appeler e.preventdefault (); et e.stoppropagation ();



3
votes

StopPropagation () est la clé pour arrêter une action JQueryui à partir du traitement, mais elle doit être interrompue avant l'événement ChangestArt. Par exemple, lorsque l'élément d'en-tête est en fait cliqué.

S'il s'agit d'une paire d'en-tête / contenu dans votre accordéon: xxx

alors cela empêchera l'accordéon d'élargir le DIV lorsque l'en-tête est cliqué sur: xxx

voir JQuery Accordion Empêche Bullbing / Autoriser l'action de liaison par défaut .


0 commentaires

2
votes

Comme Martin a dit que vous pouvez retourner faux. Voir un échantillon de code ci-dessous. xxx


0 commentaires

0
votes

Renvoyer False ne fait rien, pour annuler un événement dans JQueryui, vous devez appeler PurtissyEfault () sur l'événement.

$("#accordion").accordion({
    changestart: function (event, ui) {
       event.preventDefault();
    }
});


2 commentaires

"Ces gestionnaires peuvent donc empêcher le gestionnaire délégué de déclencher en appelant event.StopPropagation () ou de retourner faux." - API.JQUERY.com/Event.stoppropagation


Cela ne fonctionne réellement pas. C'était ma première pensée aussi.



0
votes

Qu'est-ce qui a fonctionné pour moi, appeler:

function onChange(e, ui) {
    e.preventDefault();
    e.stopPropagation();
}


0 commentaires