2010-04-14 5 views
0

J'utilise le plugin Boxy jQuery pour ouvrir les fenêtres de dialogue et les remplir avec ajax. http://onehackoranother.com/projects/jquery/boxy/Plugin jquery boxy: empêcher plusieurs instances de la même boîte de dialogue lorsque vous cliquez plusieurs fois sur le lien

Voici mon code à ce jour:

$("a.create").click(function (e) { 
    url = $(e.target).attr('href'); 
    Boxy.load(url, {title:'Test'}); 
}); 

Cela ouvre une boîte de dialogue va bien. Cependant, si je clique à nouveau sur le lien, une autre boîte de dialogue s'ouvrira. Comment puis-je faire en sorte que la boîte de dialogue Boxy précédemment ouverte soit mise au point? Je veux seulement une instance de ce dialogue.

J'ai essayé assigner une variable à var ele = Boxy.load(); mais la ele variable fournit undefined ... Hélas, je ne peux pas faire sortir beaucoup de la documentation Boxy limitée disponible.

L'activation de l'option modal: true empêcherait l'utilisateur de cliquer plusieurs fois sur le lien, mais je ne souhaite pas que la superposition s'affiche.

Merci pour la lumière que vous pouvez apporter à ce sujet.

-Lyon

Répondre

1

j'ai décidé d'utiliser une variable pour identifier si la boîte de dialogue boxy a été ouverte. Si c'est le cas, ne faites rien. Pas une solution élégante mais ...

var dialog = false; 
$("a.create").click(function() { 
    if (!dialog) { 
    dialog = new Boxy.load(this.href, { 
     title: 'Test', 
     afterHide: function() { dialog = null; }, 
    }); 
    return false; 
    } 
}); 
0

Il suffit de modifier le fichier CSS de Boxy pour enlever la superposition.

.boxy-modal-blackout { position: absolute; background-color: none; left: 0; top: 0;}

0

Je me demande si l'instance est visible

var winactive= $('#'+targetDiv).is(':visible'); 
//verificamos si el frame de carga es visible, esto indicara si la ventana modal esta activa   
if(winactive== false) 
{ 
    //ok 
    } 
    else{// not} 
Questions connexes