jQuery Bindings for GopherJS
$ go get github.com/gopherjs/jquery
welcome.html file:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Welcome to GopherJS with jQuery</title>
<script src="resources/jquery-2.1.0.js"></script>
</head>
<body>
<input id="name" type="text" value="" placeholder="What is your name ?" autofocus/>
<span id="output"></span>
<script src="welcome.js"></script>
</body>
</html>
welcome.go file:
package main
import "github.com/gopherjs/jquery"
//convenience:
var jQuery = jquery.NewJQuery
const (
INPUT = "input#name"
OUTPUT = "span#output"
)
func main() {
//show jQuery Version on console:
print("Your current jQuery version is: " + jQuery().Jquery)
//catch keyup events on input#name element:
jQuery(INPUT).On(jquery.KEYUP, func(e jquery.Event) {
name := jQuery(e.Target).Val()
name = jquery.Trim(name)
//show welcome message:
if len(name) > 0 {
jQuery(OUTPUT).SetText("Welcome to GopherJS, " + name + " !")
} else {
jQuery(OUTPUT).Empty()
}
})
}
Compile welcome.go:
$ gopherjs build welcome.go
In the "tests" folder are QUnit Tests, run the server with:
"go run server.go" and open a browser: http://localhost:3000
The relevant QUnit Test cases are defined in the test/index.go file.
Look at the Sample Apps to find out what is working and how. Any feedback is welcome !
The normal DOM / Ajax / Deferreds Api is done and can be considered stable. Please look up the index.go file in the test folder to see how it works.