comment faire une fonction globale en jquery, et l'appeler à partir d'une autre page chargée
comment déclarer une fonction globale en jquery, comment dois-je l'appeler à partir d'une page qui a été chargé dans certains div de la page à l'aide de jquery load() de la fonction.
la fonction est simple dans 1er sous-page
+-----------------------------------------------+ | liens | +-----------------------------------------------| | +-------------------------------------------+ | | |1er sous-page (myfun la fonction est ici) | | | +-------------------------------------------+ | | | +---------------------------------------+ | | | | | | | | | | | | | | | | | | | | | | | mybutton cliqué myfun appelé | | | | | | | | | | | +---------------------------------------+ | | | +-------------------------------------------+ | +-----------------------------------------------+
Mais quand je clique, rien ne se passe...
ici sont à la fois fonction de
myfun
myfun(tab_index, acc_id){
alert(tab_index +" | +" acc_id);
}
mybutton
$("#mybutton").click(function(){
var $bottomLineBtn = $(this);
$bottomLineBtn.parent().myfun('2','43234');
})
Quelqu'un peut-il m'aider.. c'est trop dur de trouver la solution.. j'ai cherché pendant 3 heures...
==================================================================================
mis à jour
voici la description détaillée du scénario
- je suis en train de travailler sur la dynamique des trucs à l'aide de jquery
- la première page contient 2 divs, ceux
id=menu
et d'autresid=subpage1
, - je clique sur un lien à partir de #menu, une page est chargée dans
#subpage1
. - il est de nouveau une page avec 2 divs
#menu2
et#subpage2
- ici j'ai fait un script qui charge automatiquement les pages de
#subpage2
en prenant seulement 1 paramètre ....qui est l'id d'un listmenu. -
ce script est..
$("#menu2 li").cliquez sur(function(){ $("#subpage2").load($(this).attr('page_link')); } }).filter('#menu2 li:eq(0)').cliquez sur();
-
dans la page chargée. au fond extrême, j'utilise 2 boutons, un bouton fonctionne très bien, il appelle la fonction ci-dessus et modifiez la valeur de li:eq(1) .. que j'ai fait comme cela.
$("#bottom_bar #backbtn").cliquez sur(function(){ var $bottomLineBtn = $(this); $bottomLineBtn.parent().parent().parent().find('#menu2 li:eq(1)').cliquez sur(); })
... mais l'autre bouton ne fonctionne pas. je veux appeler une fonction qui appartient avec quelques divisions en #subpage1
. mais ne peuvent pas y accéder. j'ai mis seulement une fonction, à côté de la ci-dessus $("#menu2 li").click(function(){
fonction.
myfun(tab_index, acc_id){
alert(tab_index +" | +" acc_id);
}
mais je ne sais pas comment appeler cette fonction à partir de la 2ème bouton chargé dans #subpage2
ne le scénario ci-dessus, faire de la scène.. merci d'essayer de me comprendre.. je ne suis pas très bon dans la description...
Si vous êtes en train de charger du contenu avec
load()
, alors c'est important où votre $('#mybutton').click(...)
est défini. Votre bouton peut ne pas exister lorsque l'événement est lié.les sous-pages veux dire.. des pages chargées à l'aide de jquery dans certains div
Qui serait appelé à contenu dynamique, une sous-page n'est pas une expression standard en HTML/AJAX/JS.
veuillez voir. j'ai mis à jour la question..
OriginalL'auteur MFarooqi | 2011-05-04
Vous devez vous connecter pour publier un commentaire.
Pourquoi ne pouvez-vous pas mettre votre fonction dans une externe .fichier js et ensuite l'importer dans votre page principale?
Généralement, le JS est meilleur dans des fichiers séparés, pas sur la page avec le HTML.
c'est très bien.. j'ai aussi essayer de garder mes fonctions js.. mais lors de l'utilisation de jquery.. certains de mes fonctions ne fonctionne pas... .. je pense que.. "$(document).prêt.... j'ai appelé ce sur chaque page, à chaque événement.. est-ce mal?...
Vos fonctions devrait toujours fonctionner. La seule chose .prêt() et .live() doit être en train de faire est de laisser vos fonctions à savoir QUAND ils devraient être appelés.
veuillez voir. j'ai mis à jour la question..
OriginalL'auteur slandau
Fonction créée dans une autre fonction, encore globalement accessible.
Pas de jQuery nécessaire à tous.
OriginalL'auteur Chris S.
Si le contenu est chargé dynamiquement, les événements doivent être raccordés à l'aide de la
.live()
méthodeOriginalL'auteur peirix
Le problème, c'est que vous avez de la chaîne de la fonction que si elle est partie de jQuery, mais vous n'avez pas fait un plugin pour jQuery.
vous devriez l'appeler comme ça
ou définir votre fonction en tant que plugin de jquery comme
et l'appeler comme vous ne le font actuellement
OriginalL'auteur Gabriele Petrioli