2012-01-09 28 views
30

Sto provando ad usare la finestra di dialogo jQueryUI in un'applicazione MVC3 ma avendo un problema con esso. La finestra di dialogo che ho sta caricando una vista parziale in esso in cui l'utente sarà modificare o creare un nuovo elemento. Funziona bene, ma se provo a salvare o aggiornare l'oggetto, o se provo a chiuderlo, ottengo il messaggio nel titolo.Unchaught TypeError: Object [oggetto Object] non ha alcun metodo 'dialog'

Ho aggiunto tutti i file .js richiesti, ma ho ancora ricevuto l'errore. Ho anche usato firebug ma non riesco a trovare il motivo per cui l'errore sta accadendo.

HTML

<span class="EditLink ButtonLink" addressId="@addr.Id">Modify this Address</span> 
<div id="popup"></div> 

JavaScript

$(document).ready(function() { 
    var id = 0; 

    //define config object 
    var dialogOpts = { 
     title: "Edit item", 
     modal: true, 
     autoOpen: false, 
     height: 500, 
     width: 500, 
     open: function() { 
      $("#popup").load("/partialviewtoload/" + id); 
     }, 
     buttons: { 
      Cancel: function() { 
       $(this).dialog('close'); 
      } 
     } 
    }; 

    $("#popup").dialog(dialogOpts); //end dialog 

    $('.EditLink').click(function() { 
     id = $(this).attr("itemId"); 
     $("#popup").dialog("open"); 
     return false; 
    });  
}); 
+0

dispiace, pasta non era corretta. – Nollaig

risposta

61

problema era che stavo REFERENCING "jquery-1.5.1.min.js" due volte. Una volta nel _Layout.cshtml e anche nella vista parziale che stavo caricando. . Rimosso il riferimento nella vista parziale e ottenuto ordinato.

5

Sembra che il browser non si sono caricati jQueryUI, assicurarsi che sia nel vostro DOM

+0

Ha caricato jqueryui come posso vederlo usando firebug. Inoltre, la finestra di dialogo viene caricata la prima volta senza problemi. Il problema è cercare di chiuderlo usando $ (this) .dialog ('close') e riaprirlo. – Nollaig

+1

Quindi, penso che '$ (this)' non stia puntando a un elemento contenente l'oggetto dialog. Prima di '$ (this) .dialog ('close')' test '$ (this)' di 'console.log (this)' –

+1

E, penso, $ ('# popup'). Dialog ('close') , sarà corretto –

0

Nel mio caso era che

you should include first grid.locale-en.js and then jquery.jqGrid.min.js.

Problemi correlati