J'ai essayé de faire fonctionner cela pendant les 7 dernières heures alors s'il vous plaît excuser le léger ton de la frustration.JQuery UI Tabs callbacks ne fonctionne pas
J'ai implémenté avec succès un joli jeu d'onglets jquery ui qui charge leur contenu via ajax.
Le contenu chargé via ajax comporte un formulaire. Je voulais que le premier champ du formulaire (qui a un ID de # titre) soit automatiquement focalisé lorsque l'onglet est chargé. Cela n'a pas fonctionné quand j'ai essayé de mettre le script dans le document externe donc j'ai pensé qu'un rappel serait une bonne idée. J'ai reçu cette idée de here. Le retard est dû au fait que je rencontrais des problèmes avec le champ ne se focalisant pas correctement en cliquant sur chaque onglet. Au début, je pensais que cela avait résolu une partie du problème, mais après encore plus de tests j'ai trouvé que ce champ de focus ne fonctionne que sur l'onglet qui a été initialement chargé.
j'ai décidé de me vider la tête et mettre en œuvre un nouveau test nice jquery autocomplete text field.
Ce script a semblé fonctionner quand directement chargé dans le contenu externe, mais à ma grande consternation a montré que ce ne pas être le cas. Le champ de saisie semi-automatique fonctionne uniquement sur l'onglet chargé lors du chargement de la page.
C'est à ce moment que j'ai remarqué le motif que mes deux scripts ne fonctionnent que sur l'onglet chargé initial.
J'ai essayé d'utiliser les événements select, load et show, mais tous ne fonctionnent pas.
Je sais que le rappel fonctionne parce que l'alerte apparaît lorsque chaque onglet est cliqué.
De toute évidence, je fais quelque chose de très mal. S'il vous plaît choisir mon code en morceaux et dites-moi ce que je fais mal.
<script type="text/javascript">
$(function() {
$("#tabs").tabs({
load: function(event, ui) { setTimeout(function() { $("#title").focus(); }, 500);
$("#role").autocomplete(
"/profile/autocomplete",
{
delay:10,
minChars:1,
matchSubset:1,
matchContains:1,
cacheLength:10,
onItemSelect:selectItem,
onFindValue:findValue,
formatItem:formatItem,
autoFill:true
}
);
alert('callback');
}
});
});
</script>
'# title' et '# role' sont-ils dans les onglets? – Mottie
Bonjour, Oui # titre et #role sont chargés via le contenu ajax. Je ne comprends pas vraiment le rôle des rappels, mais j'ai entendu dire qu'ils sont une bonne chose à faire, et les scripts ne fonctionnent pas quand j'essaie d'y accéder à partir d'un onglet ... – Tim
Les rappels sont la bonne façon de planifier un l'action a lieu une fois qu'un autre événement s'est produit. C'est très utile avec le code ajax où une erreur courante est de dire load_foo_via_ajax(); use_foo(); car les deux appels se produiront simultanément et le deuxième morceau de code risque d'échouer car foo n'a pas encore été chargé. –