2012-08-11 4 views
14

ich den folgenden JavaScript-Code haben:Javascript Stecker in Noty gibt Fehler

function delete_draft(id, name) { 
    var text = 'Are you sure you want to delete "' + name + '"?'; 
    alert(id + name) 
    var noty = noty({ 
     text: text, 
     buttons: [ 
     {addClass: 'btn btn-primary', text: 'Yes', onClick: function($noty) { 

      // this = button element 
      // $noty = $noty element 

      $noty.close(); 
      $.post('/ajax/drafts/delete', {id:id}, function(data) { 
       document.location.reload(true); 
      }); 
     } 
     }, 
     {addClass: 'btn btn-danger', text: 'Cancel', onClick: function($noty) { 
      $noty.close(); 
     } 
     } 
    ]}); 
} 

Als ich aus dem Konsul laufen delete_draft(6, "this is it") ich diesen Fehler

TypeError: undefined is not a function 
arguments: Array[1] 
get message: function() { [native code] } 
get stack: function() { [native code] } 
set message: function() { [native code] } 
set stack: function() { [native code] } 
type: "called_non_callable" 
__proto__: Error 

Wie kann ich dieses Problem beheben? Die Website für Noty ist http://needim.github.com/noty/ Wenn Sie denken, dass es funktionieren sollte, kommentieren.

+0

Was ist 'noty'? im Code 'var noty = noty' noty als Funktion ist undefiniert. Vielleicht brauchen Sie 'var noty = function ('? – Vsevolod

+0

@Vsevolod Deshalb habe ich einen Link auf die Noty-Site im unteren –

+0

@ "Mike G" Ich kann Ihren Link nicht öffnen :-(Wie Sie die Notiz einstecken. js in dir html? – Vsevolod

Antwort

25

Ich bin gerade auf dieses Problem gestoßen. Es stellt sich heraus, dass der Variablenname noty mit dem exportierten Funktionsnamen noty identisch ist.

var n = noty({text: 'testing 123'}); 

Einfach den Variablennamen zu ändern behebt es für mich.

+1

Vielen Dank für dieses! –

+0

Danke, rettete mir ein paar Minuten :) –

+0

In der Hauptseite von Noty sie setzen die Probe var noty = noty ({... Vielen Dank !!!! –

4

Zusätzlich zum Umbenennen der Variablen stellen Sie sicher, dass Sie das Layout js file enthalten. Der Standardwert ist oben. Wenn er nicht in den Optionen angegeben ist, müssen Sie noty/layouts/top.js einschließen. Wenn Sie andere Layouts angeben, fügen Sie die entsprechenden js-Layoutdateien hinzu.