2012-06-03 3 views
14

Sto cercando di ottenere questo modulo popup di dialogo da mostrare quando si fa clic su questo collegamento ma non funziona per me. Ci sto lavorando da tre ore e questo è troppo frustrante per me.popup di jquery popup

Ecco il mio html

<a href="#" id="contactUs">Contact Us</a> 
<div id="dialog" title="Contact form"> 
    <p>appear now</p> 
</div> 

Ed ecco il mio javascript, questo è in un file esterno.

$("#contactUs").click(function() { 
    $("#dialog").dialog("open"); 
    return false; 
}); 

Ho usato questi collegamenti, ma senza alcun risultato per me.

http://jqueryui.com/demos/dialog/#modal

http://jqueryui.com/demos/dialog/#default

Per favore fatemi sapere se abbia un idee, molto apprezzato, grazie.

+0

Nessun errore? Nessuna strana azione visiva? Niente ? – Zuul

+0

Se sei interessato, ho un plugin per rendere più facili le finestre di dialogo di jQuery: http://www.mostthingsweb.com/2011/12/dialogwrapper-2-1-released/ –

+0

ah scusa, in sostanza, l'errore è che il popup non viene visualizzato affatto. E grazie per il link, lo controllerò adesso. – rj2700

risposta

34

Questa HTML va bene:

<a href="#" id="contactUs">Contact Us</a>     
<div id="dialog" title="Contact form"> 
    <p>appear now</p> 
</div> 

è necessario inizializzare la finestra di dialogo (non so se si sta facendo questo):

$(function() { 
    // this initializes the dialog (and uses some common options that I do) 
    $("#dialog").dialog({ 
    autoOpen : false, modal : true, show : "blind", hide : "blind" 
    }); 

    // next add the onclick handler 
    $("#contactUs").click(function() { 
    $("#dialog").dialog("open"); 
    return false; 
    }); 
}); 
+0

Grazie, questo aiuta, tuttavia, la finestra di dialogo non viene ancora visualizzata. Proverò a guardarmi di più. – rj2700

+0

Prova questo violino: http://jsfiddle.net/N7PRp/ Funziona per me. – rcdmk

7

Il tuo problema è la chiamata per la finestra di

Se non si inizializza la finestra di dialogo, non è necessario passare "open" perché possa essere visualizzato:

$("#dialog").dialog(); 

Inoltre, questo codice deve essere su una funzione $(document).ready(); o essere sotto gli elementi per farlo funzionare.

+0

Grazie. Ho provato senza passare allo scoperto, ma ancora non funziona per me. Inoltre, non ho pubblicato l'evento pronto, ma è presente nel documento. – rj2700

+0

Prova questo violino: http://jsfiddle.net/N7PRp/ Funziona per me. – rcdmk

3

E 'molto semplice, prima HTML deve essere aggiunto:

<div id="dialog"></div> 

Poi, deve essere inizializzato:

<script type="text/javascript"> 
    jQuery(document).ready(function() { 
    jQuery('#dialog').dialog({ 'autoOpen': false }); 
    }); 
</script> 

Dopo questo si può mostrare per codice:

jQuery('#dialog').dialog('open'); 
3

Usa sotto Codice, ha funzionato per me.

<script type="text/javascript"> 
    $(document).ready(function() { 
      $('#dialog').dialog({ 
       autoOpen: false, 
       title: 'Basic Dialog' 
      }); 
      $('#contactUs').click(function() { 
       $('#dialog').dialog('open'); 
      }); 
     }); 
</script> 
1

È possibile utilizzare il seguente script. Ha funzionato per me

La modale stessa è costituita da un contenitore modale principale, un'intestazione, un corpo e un piè di pagina. Il piè di pagina contiene le azioni, che in questo caso è il pulsante OK, l'intestazione contiene il titolo e il pulsante di chiusura e il corpo contiene il contenuto modale.

$(function() { 
     modalPosition(); 
     $(window).resize(function() { 
      modalPosition(); 
     }); 
     $('.openModal').click(function (e) { 
      $('.modal, .modal-backdrop').fadeIn('fast'); 
      e.preventDefault(); 
     }); 
     $('.close-modal').click(function (e) { 
      $('.modal, .modal-backdrop').fadeOut('fast'); 
     }); 
    }); 
    function modalPosition() { 
     var width = $('.modal').width(); 
     var pageWidth = $(window).width(); 
     var x = (pageWidth/2) - (width/2); 
     $('.modal').css({ left: x + "px" }); 
    } 

fare riferimento: - Modal popup using jquery in asp.net