2012-03-19 4 views
2

Ceci est un bouton pour fermer le clic mais il échoue et ne fonctionne pas. Je voudrais savoir quel est l'ID de l'onglet car je ne pensais pas en attribuer un quand je crée un onglet.Pourquoi je ne peux pas déclencher la fonction jquery?

Merci.

C'est ma tentative

js

$("#closeTab").click(function() { 
window.parent.$('#tt').tabs('close','Create List'); 
}); 

html

<input type="button" id="closeTab" value="Cancel" class="submit"/> 

je trouve mon code js fonctionne mais le bouton ne peut pas déclencher? Pourquoi? merci

dernier essai:

<script> 
$(document).ready(function(){ 
$("#addlist").validate(); 
}); 


$(function(){ 
    $("#closeTab").click(function() { 
    window.parent.$('#tt').tabs('close','Create List'); 
    }); 
}); 

</script> 

Il ne fonctionne toujours pas si je pense qu'il est parce que la fonction supérieure? Comment régler ceci?

============================================== ========================================= De plus, il y a il y a des moyens pour effacer ma session en utilisant cette jquery fonction (que devrais-je ajouter par exemple)? ** Merci

Répondre

1

Avec javascript, vous devez retarder l'exécution de certaines fonctions (comme les gestionnaires d'événements) jusqu'à ce que la page se charge complètement. Sinon, il tente de lier une fonction à un élément qui n'existe pas encore. Avec jQuery, vous pouvez passer une fonction à jQuery à exécuter la charge page très facilement comme ceci:

$(function(){ /* code goes here */ }); 

donc à utiliser avec votre code, vous feriez ceci:

$(function(){ 
    $("#closeTab").click(function() { 
    window.parent.$('#tt').tabs('close','Create List'); 
    }); 
}); 

De cette façon Lorsque jQuery tente de lier la fonction à #closeTab, cela arrive après le chargement de la page (et après que #closeTab existe).

1

Avez-vous des erreurs dans la console?

Incluez-vous jQuery avant la liaison par clic? Essayez de changer le window.parent.... en alert('clicked!'); et assurez-vous d'y arriver.

Aussi, assurez-vous que le clic de liaison est à l'intérieur d'un:

$(document).ready(function(){ 

// here 

}); 
0

Un script peut fermer uniquement les fenêtres qu'il crée. Il ne peut pas fermer l'onglet qu'il n'a pas créé.

Pour reformuler, ne peut pas fermer l'onglet seulement si sauf mais quand créé onglet par script qui est même que fermer la fenêtre.

J'espère que cela a du sens.

0

Peut-être que le formulaire est soumis et le navigateur navigue vers une autre URL avant que le code puisse s'exécuter? Essayez de remplacer function() par function(e) et d'ajouter e.preventDefault(); au début du gestionnaire d'événements.

+1

Le '' est de 'type'' button', pas 'submit'. – Ryan

Questions connexes