2010-02-22 9 views
2

J'utilise a popup plugin pour ouvrir ma fenêtre pop-up.Problème avec la fenêtre contextuelle jquery

Générer une table html en utilisant Javascript. En cela il y a la colonne Employee Id ayant un lien hypertexte. Je suis ouverture popup sur le clic de l'hyperlien pour afficher les détails de l'employé.

dynamique généré code:

<a id='" + arrElement[0].EMP_DATA[i].EMP_ID +"' 
    href='employee.do?requestSource=EMP_PROFILE&empId=" + 
     arrElement[0].EMP_DATA[i].EMP_ID+"' 
    class='empName' > 
    <B>" +arrElement[0].EMP_DATA[i].EMP_NAME+"</B> 
</a> 

Problème: popup est ouvert dans la même fenêtre. Ce problème se produit uniquement lorsque le code est généré dynamiquement en utilisant java script

suivant est mon code pour ouvrir le menu contextuel, appelant le code de script après la fin de la table des employés:

$('.empName').popupWindow({ 
    centerScreen: 1, 
    scrollbars: 1, 
    height: ($(window).height()-100), 
    width: ($(window).width()-100) 
}); 

S'il vous plaît aider

Répondre

1

Première tentative: La bibliothèque peut ne pas être en cours de chargement. Assurez-vous que le fichier javascript qui fournit popupWindow est présent et qu'il est correctement référencé. Assurez-vous également que jquery est chargé, car cette bibliothèque en dépend.

Essayez quelque chose comme

alert($.fn.popupWindow); 

après charge pour vous assurer que jQuery et la bibliothèque popupWindow sont le chargement. Si cela dit quelque chose à propos d'une référence de fonction ou d'un objet, le problème est autre chose. Sinon, jquery ou la bibliothèque n'est pas en cours de chargement.

2ème essai:

Voir jquery doesn't see new elements, question étroitement liée. jQuery ne reconnaît pas les éléments créés 'immédiatement', vous devez attendre que la modification ait lieu via des événements. Il semble que vous voulez utiliser quelque chose comme

$('.empName').change(function(){ 
    $('.empName').popupWindow({ ... }); 
}); 
+0

Jesse J'utilise le même plugin pour ouvrir mes autres popups. – Vicky

+0

Je confirme également la bibliothèque popupWindow chargée correctement – Vicky

+0

Ah, une autre idée, faites-vous l'appel de la fenêtre popup dans le même "événement" que lorsque vous écrivez la table? Essayez de mettre en place un événement futur, par ex. en utilisant window.setTimeout (10, setupPopups); Cela peut être dû au fait que les éléments DOM ne sont pas immédiatement accessibles après leur écriture ... Cela fait trop longtemps que je me suis trompé pour m'en souvenir. –

0

Avez-vous le vérifier dans un autre navigateur ou sur un autre système? C'est probablement un réglage de votre navigateur pour ouvrir les popups dans un nouvel onglet dans la même fenêtre (je suppose que c'est ce qui se passe, et que la popup ne remplace pas toute la page).

+0

J'ai déjà testé cela dans un autre navigateur, le même problème se produit. – Vicky

Questions connexes