diff --git a/jquery/jquery-tests.ts b/jquery/jquery-tests.ts
index 518e8a45d..95fed2635 100644
--- a/jquery/jquery-tests.ts
+++ b/jquery/jquery-tests.ts
@@ -946,6 +946,17 @@ function test_removeData() {
$("span:eq(3)").text("" + $("div").data("test2"));
}
+function test_jQuery_removeData() {
+ var div = $("div")[0];
+ $("span:eq(0)").text("" + $("div").data("test1"));
+ jQuery.data(div, "test1", "VALUE-1");
+ jQuery.data(div, "test2", "VALUE-2");
+ $("span:eq(1)").text("" + jQuery.data(div, "test1"));
+ jQuery.removeData(div, "test1");
+ $("span:eq(2)").text("" + jQuery.data(div, "test1"));
+ $("span:eq(3)").text("" + jQuery.data(div, "test2"));
+}
+
function test_dblclick() {
$('#target').dblclick(function () {
alert('Handler for .dblclick() called.');
@@ -1095,6 +1106,68 @@ function test_dequeue() {
});
}
+function test_queue() {
+
+ $("#show").click(function () {
+ var n = jQuery.queue($("div")[0], "fx");
+ $("span").text("Queue length is: " + n.length);
+ });
+
+ function runIt() {
+ $("div")
+ .show("slow")
+ .animate({
+ left: "+=200"
+ }, 2000)
+ .slideToggle(1000)
+ .slideToggle("fast")
+ .animate({
+ left: "-=200"
+ }, 1500)
+ .hide("slow")
+ .show(1200)
+ .slideUp("normal", runIt);
+ }
+
+ runIt();
+
+ $(document.body).click(function () {
+ var divs = $("div")
+ .show("slow")
+ .animate({ left: "+=200" }, 2000);
+ jQuery.queue(divs[0], "fx", function () {
+ $(this).addClass("newcolor");
+ jQuery.dequeue(this);
+ });
+ divs.animate({ left: "-=200" }, 500);
+ jQuery.queue(divs[0], "fx", function () {
+ $(this).removeClass("newcolor");
+ jQuery.dequeue(this);
+ });
+ divs.slideUp();
+ });
+
+ $("#start").click(function () {
+ var divs = $("div")
+ .show("slow")
+ .animate({ left: "+=200" }, 5000);
+ jQuery.queue(divs[0], "fx", function () {
+ $(this).addClass("newcolor");
+ jQuery.dequeue(this);
+ });
+ divs.animate({ left: "-=200" }, 1500);
+ jQuery.queue(divs[0], "fx", function () {
+ $(this).removeClass("newcolor");
+ jQuery.dequeue(this);
+ });
+ divs.slideUp();
+ });
+ $("#stop").click(function () {
+ jQuery.queue($("div")[0], "fx", []);
+ $("div").stop();
+ });
+}
+
function test_detach() {
$("p").click(function () {
$(this).toggleClass("off");
@@ -1669,6 +1742,104 @@ function test_hasData() {
$p.append(jQuery.hasData(p) + " ");
}
+function test_jQuery_proxy() {
+
+ function test1() {
+ var me = {
+ type: "zombie",
+ test: function (event?) {
+ // Without proxy, `this` would refer to the event target
+ // use event.target to reference that element.
+ var element = event.target;
+ $(element).css("background-color", "red");
+
+ // With proxy, `this` refers to the me object encapsulating
+ // this function.
+ $("#log").append("Hello " + this.type + "
");
+ $("#test").off("click", this.test);
+ }
+ };
+
+ var you = {
+ type: "person",
+ test: function (event?) {
+ $("#log").append(this.type + " ");
+ }
+ };
+
+ // Execute you.test() in the context of the `you` object
+ // no matter where it is called
+ // i.e. the `this` keyword will refer to `you`
+ var youClick = $.proxy(you.test, you);
+
+ // attach click handlers to #test
+ $("#test")
+ // this === "zombie"; handler unbound after first click
+ .on("click", $.proxy(me.test, me))
+
+ // this === "person"
+ .on("click", youClick)
+
+ // this === "zombie"
+ .on("click", $.proxy(you.test, me))
+
+ // this === "