2012-08-11 32 views
14

Mam następujący kod javascript:JavaScript podłączyć Noty daje błąd

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(); 
     } 
     } 
    ]}); 
} 

Kiedy biegnę z konsulem delete_draft(6, "this is it") otrzymuję ten błąd

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 

Jak mogę rozwiązać ten problem? Strona internetowa dla Noty to http://needim.github.com/noty/ Jeśli uważasz, że powinna zadziałać, skomentuj.

+0

Co to jest 'noty'? w kodzie 'var noty = noty' noty, ponieważ funkcja jest niezdefiniowana. Być może potrzebujesz 'var noty = function ('? – Vsevolod

+0

@Vsevolod Dlatego właśnie umieściłem link do strony z informacją pod butem –

+0

@ "Mike G" Nie mogę otworzyć twojego linku :-(Jak podłączyć notatkę. js w tobie html? – Vsevolod

Odpowiedz

25

Właśnie natknąłem się na ten problem. Okazuje się, że nazwa zmiennej noty jest taka sama jak wyeksportowana nazwa funkcji noty.

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

Po prostu zmieniając nazwę zmiennej, naprawia ją dla mnie.

+1

Bardzo dziękuję za to! –

+0

Dzięki, zaoszczędziło mi to kilka minut :) –

+0

Na stronie głównej noty umieszczają próbkę var noty = noty ({... dziękuję bardzo !!!! –

4

Oprócz zmiany nazwy zmiennej należy dołączyć plik układu js. Wartością domyślną jest góra, więc jeśli nie jest podana w opcjach, musisz podać noty/layouts/top.js. Jeśli określisz inne układy, uwzględnij odpowiednie pliki js układu.

Powiązane problemy