Static types for the jQuery API for Scala.js programs.
Add the following dependency to your SBT build:
libraryDependencies += "io.udash" %%% "udash-jquery" % "3.0.2"
then import the jQuery package:
import io.udash.wrappers.jquery._
Since version 3.0.0
the wrapper is published as a CommonJS module with JS dependencies managed
by scalajs-bundler.
If you do not want to use the bundler, you have to include jQuery sources manually by:
- explicit link in your
index.html
.
<script src="https://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"></script>
- or a Scala.js dependency.
jsDependencies +=
"org.webjars" % "jquery" % "3.3.1" / "3.3.1/jquery.js" minified "3.3.1/jquery.min.js"
import io.udash.wrappers.jquery._
jQ("#elementId")
.hide(AnimationOptions(
duration = Some(3000),
easing = Some(EasingFunction.linear)
))
.show(1500, EasingFunction.swing)
import io.udash.wrappers.jquery._
val element: JQuery = jQ("#id")
element.text("Text content")
element.attr("example-attr", "value")
element.attr("example-attr") match {
case Some(value) => println(s"Attribute value: $value")
case None => println("Attribute not found!")
}
import io.udash.wrappers.jquery._
val callbacks = jQ.callbacks[js.Function1[(Int, Int), js.Any], (Int, Int)]()
callbacks.add((t: (Int, Int)) => {
val (a, b) = t
jQ("#plus").append(li(s"$a + $b = ${a+b}").render)
})
callbacks.add((t: (Int, Int)) => {
val (a, b) = t
jQ("#minus").append(li(s"$a - $b = ${a-b}").render)
})
callbacks.add((t: (Int, Int)) => {
val (a, b) = t
jQ("#mul").append(li(s"$a * $b = ${a*b}").render)
})
callbacks.add((t: (Int, Int)) => {
val (a, b) = t
jQ("#div").append(li(s"$a / $b = ${a/b}").render)
})
callbacks.fire(1, 1)
callbacks.fire(3, 3)
callbacks.fire(7, 4)
callbacks.disable()
callbacks.fire(1, 2)