2012-04-09 12 views
1

Ich habe eine sehr einfache gsp-Seite, die eine Schaltfläche hat. Ich versuche, JQuery (Nicht-Plugin) unauffällig an das Click-Ereignis anzuhängen. Aber Grails gibt mir keine Liebe. Es gibtjQuery und Grails funktioniert nicht

Ich habe dies ganz am Ende meines main.gsp (nach dem Tag

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"></script> 

Ich habe den folgenden Code am unteren Rand der Seite, die die Schaltfläche hat.

<script type="text/javascript"> 

    //call out to the controller with the id of this listing and 
    //get back a json list of the last several bid amounts 
    // 
    $(document).ready(function(){ 
     alert("got here"); 
     bindControls(); 
     //getLatestBids(${listingInstance.id}); 
    }); 

</script> 

und schließlich, ich habe diesen Code in meinem eigenen js-Datei:

bindControls= function(){ 
    alert("clicked me"); 
    $('#newBidButton').live("click", function(){ 
     alert("clicked me!"); 
    }); 
} 

ich Chrom und Firebug und sehen tha öffnen kann t alle js-Dateien geladen sind. Wenn ich jedoch auf den Knopf klicke, passiert nichts. Ich habe auch erwartet, dass die in der $ (document) .ready Funktion ausgelöst wird, aber es hat nie getan. Wer hat irgendwelche Ideen?

Danke!


Update:

Ändern meines Skript-Tag:

<g:javascript> 
     $(document).ready(function(){ 
      bindControls(); 
      getLatestBids(${listingInstance.id}); 
     }); 
    </g:javascript> 

und meine Jquery Einfuhren in den Kopf-Tag des Master bewegt hat der Trick.

+0

Fehler? Hast du deinen Code in Firebug et al eingetragen? Wird jquery vor deinem Code geladen? Hast du die Wahlsyntax richtig? ist Ihr Skript vor dem Skript-Tag (d. h. in der Kopfzeile des HTML-Dokuments?) –

+0

Keine Fehler. Ich bekomme nichts. Keine Stopps. Was meinst du damit ist JQuery vor meinem Code geladen? Ich weiß nicht viel darüber, was grails tut, aber ich habe das Skript am unteren Rand meiner main.gsp (wie ich in der Frage erwähnt). Meine Skripte befinden sich am Ende der Seite. Müssen sie oben sein? – Buzzer

+0

verwenden Sie welche Version von Grails? Wenn seine Grails 2.0 dann ist Jquery da schon ... –

Antwort

1

Versuchen Sie, $ durch jQuery zu ersetzen, wenn Sie widersprüchliche JavaScript-Bibliotheken auf Ihrer Seite haben. Wenn das der Problemlöser ist, können Sie Ihren jQuery-Code folgendermaßen umschließen:

function($) { 
    $(document).ready(function(){ 
     console.log("got here"); 
    }); 
}(jQuery) 
+0

Besser, die jquery.noConflict imho zu verwenden, aber yep –

Verwandte Themen