diff --git a/jquery/jquery-1.8.d.ts b/jquery/jquery-1.8.d.ts
index 1300fcec64..361d154de5 100644
--- a/jquery/jquery-1.8.d.ts
+++ b/jquery/jquery-1.8.d.ts
@@ -278,7 +278,7 @@ interface JQueryStatic {
globalEval(code: string): any;
- grep(array: any[], func: any, invert: bool): any[];
+ grep(array: any[], func: any, invert?: bool): any[];
inArray(value: any, array: any[], fromIndex?: number): number;
@@ -440,6 +440,7 @@ interface JQuery {
fadeTo(duration: any, opacity: number, callback?: any): JQuery;
fadeTo(duration: any, opacity: number, easing?: string, callback?: any): JQuery;
+ fadeToggle(duration?: any, callback?: any): JQuery;
fadeToggle(duration?: any, easing?: string, callback?: any): JQuery;
hide(duration?: any, callback?: any): JQuery;
diff --git a/jquery/jquery-tests.ts b/jquery/jquery-tests.ts
index ff019b0486..bf9f9e71e8 100644
--- a/jquery/jquery-tests.ts
+++ b/jquery/jquery-tests.ts
@@ -1179,6 +1179,437 @@ function test_error() {
jQuery.error = console.error;
}
+function test_eventParams() {
+ $("p").click(function (event) {
+ event.currentTarget === this;
+ });
+ $(".box").on("click", "button", function (event) {
+ $(event.delegateTarget).css("background-color", "red");
+ });
+ $("a").click(function (event) {
+ event.isDefaultPrevented();
+ event.preventDefault();
+ event.isDefaultPrevented();
+ });
+ function immediatePropStopped(e) {
+ var msg = "";
+ if (e.isImmediatePropagationStopped()) {
+ msg = "called"
+ } else {
+ msg = "not called";
+ }
+ $("#stop-log").append("
" + msg + "
");
+ }
+ $("button").click(function (event) {
+ immediatePropStopped(event);
+ event.stopImmediatePropagation();
+ immediatePropStopped(event);
+ });
+ function propStopped(e) {
+ var msg = "";
+ if (e.isPropagationStopped()) {
+ msg = "called"
+ } else {
+ msg = "not called";
+ }
+ $("#stop-log").append("" + msg + "
");
+ }
+ $("button").click(function (event) {
+ propStopped(event);
+ event.stopPropagation();
+ propStopped(event);
+ });
+ $("p").bind("test.something", function (event) {
+ alert(event.namespace);
+ });
+ $("button").click(function (event) {
+ $("p").trigger("test.something");
+ });
+ $(document).bind('mousemove', function (e) {
+ $("#log").text("e.pageX: " + e.pageX + ", e.pageY: " + e.pageY);
+ });
+ $("a").click(function (event) {
+ event.preventDefault();
+ $('')
+ .append('default ' + event.type + ' prevented')
+ .appendTo('#log');
+ });
+ $("a").mouseout(function (event) {
+ alert(event.relatedTarget.nodeName);
+ });
+ $("button").click(function (event) {
+ return "hey";
+ });
+ $("button").click(function (event) {
+ $("p").html(event.result);
+ });
+ $("p").click(function (event) {
+ event.stopImmediatePropagation();
+ });
+ $("p").click(function (event) {
+ $(this).css("background-color", "#f00");
+ });
+ $("div").click(function (event) {
+ $(this).css("background-color", "#f00");
+ });
+ $("p").click(function (event) {
+ event.stopPropagation();
+ });
+ $("body").click(function (event) {
+ $("#log").html("clicked: " + event.target.nodeName);
+ });
+ $('#whichkey').bind('keydown', function (e) {
+ $('#log').html(e.type + ': ' + e.which);
+ });
+ $('#whichkey').bind('mousedown', function (e) {
+ $('#log').html(e.type + ': ' + e.which);
+ });
+}
+
+function test_extend() {
+ var object1 = {
+ apple: 0,
+ banana: { weight: 52, price: 100 },
+ cherry: 97
+ };
+ var object2 = {
+ banana: { price: 200 },
+ durian: 100
+ };
+ $.extend(object1, object2);
+ var printObj = typeof JSON != "undefined" ? JSON.stringify : function (obj) {
+ var arr = [];
+ $.each(obj, function (key, val) {
+ var next = key + ": ";
+ next += $.isPlainObject(val) ? printObj(val) : val;
+ arr.push(next);
+ });
+ return "{ " + arr.join(", ") + " }";
+ };
+ $("#log").append(printObj(object1));
+
+ var defaults = { validate: false, limit: 5, name: "foo" };
+ var options = { validate: true, name: "bar" };
+ var settings = $.extend({}, defaults, options);
+}
+
+function test_fadeIn() {
+ $('#clickme').click(function () {
+ $('#book').fadeIn('slow', function () { });
+ });
+ $(document.body).click(function () {
+ $("div:hidden:first").fadeIn("slow");
+ });
+ $("a").click(function () {
+ $("div").fadeIn(3000, function () {
+ $("span").fadeIn(100);
+ });
+ return false;
+ });
+}
+
+function test_fadeOut() {
+ $('#clickme').click(function () {
+ $('#book').fadeOut('slow', function () { });
+ });
+ $("p").click(function () {
+ $("p").fadeOut("slow");
+ });
+ $("span").click(function () {
+ $(this).fadeOut(1000, function () {
+ $("div").text("'" + $(this).text() + "' has faded!");
+ $(this).remove();
+ });
+ });
+ $("span").hover(function () {
+ $(this).addClass("hilite");
+ }, function () {
+ $(this).removeClass("hilite");
+ });
+ $("#btn1").click(function () {
+ function complete() {
+ $("").text(this.id).appendTo("#log");
+ }
+ $("#box1").fadeOut(1600, "linear", complete);
+ $("#box2").fadeOut(1600, complete);
+ });
+ $("#btn2").click(function () {
+ $("div").show();
+ $("#log").empty();
+ });
+}
+
+function test_fadeTo() {
+ $('#clickme').click(function () {
+ $('#book').fadeTo('slow', 0.5, function () { });
+ });
+ $("p:first").click(function () {
+ $(this).fadeTo("slow", 0.33);
+ });
+ $("div").click(function () {
+ $(this).fadeTo("fast", Math.random());
+ });
+ var getPos = function (n) {
+ return (Math.floor(n) * 90) + "px";
+ };
+ $("p").each(function (n) {
+ var r = Math.floor(Math.random() * 3);
+ var tmp = $(this).text();
+ $(this).text($("p:eq(" + r + ")").text());
+ $("p:eq(" + r + ")").text(tmp);
+ $(this).css("left", getPos(n));
+ });
+ $("div").each(function (n) {
+ $(this).css("left", getPos(n));
+ })
+ .css("cursor", "pointer")
+ .click(function () {
+ $(this).fadeTo(250, 0.25, function () {
+ $(this).css("cursor", "")
+ .prev().css({
+ "font-weight": "bolder",
+ "font-style": "italic"
+ });
+ });
+ });
+}
+
+function test_fadeToggle() {
+ $("button:first").click(function () {
+ $("p:first").fadeToggle("slow", "linear");
+ });
+ $("button:last").click(function () {
+ $("p:last").fadeToggle("fast", function () {
+ $("#log").append("finished
");
+ });
+ });
+}
+
+function test_filter() {
+ $('li').filter(':even').css('background-color', 'red');
+ $('li').filter(function (index) {
+ return index % 3 == 2;
+ }).css('background-color', 'red');
+ $("div").css("background", "#b4b0da")
+ .filter(function (index) {
+ return index == 1 || $(this).attr("id") == "fourth";
+ })
+ .css("border", "3px double red");
+ $("div").filter(document.getElementById("unique"));
+ $("div").filter($("#unique"));
+}
+
+function test_find() {
+ $('li.item-ii').find('li').css('background-color', 'red');
+ var item1 = $('li.item-1')[0];
+ $('li.item-ii').find(item1).css('background-color', 'red');
+ var $spans = $('span');
+ $("p").find($spans).css('color', 'red');
+ var newText = $("p").text().split(" ").join(" ");
+ newText = "" + newText + "";
+ $("p").html(newText)
+ .find('span')
+ .hover(function () {
+ $(this).addClass("hilite");
+ },
+ function () {
+ $(this).removeClass("hilite");
+ })
+ .end()
+ .find(":contains('t')")
+ .css({ "font-style": "italic", "font-weight": "bolder" });
+}
+
+function test_first() {
+ $('li').first().css('background-color', 'red');
+}
+
+function test_focus() {
+ $('#target').focus(function () {
+ alert('Handler for .focus() called.');
+ });
+ $('#other').click(function () {
+ $('#target').focus();
+ });
+ $("input").focus(function () {
+ $(this).next("span").css('display', 'inline').fadeOut(1000);
+ });
+ $("input[type=text]").focus(function () {
+ $(this).blur();
+ });
+ $(document).ready(function () {
+ $("#login").focus();
+ });
+}
+
+function test_focusin() {
+ $("p").focusin(function () {
+ $(this).find("span").css('display', 'inline').fadeOut(1000);
+ });
+}
+
+function test_focusout() {
+ var fo = 0, b = 0;
+ $("p").focusout(function () {
+ fo++;
+ $("#fo")
+ .text("focusout fired: " + fo + "x");
+ }).blur(function () {
+ b++;
+ $("#b")
+ .text("blur fired: " + b + "x");
+ });
+}
+
+function test_fx() {
+ jQuery.fx.interval = 100;
+ $("input").click(function () {
+ $("div").toggle(3000);
+ });
+ var toggleFx = function () {
+ $.fx.off = !$.fx.off;
+ };
+ toggleFx();
+ $("button").click(toggleFx)
+ $("input").click(function () {
+ $("div").toggle("slow");
+ });
+}
+
+function test_get() {
+ $.get('ajax/test.html', function (data) {
+ $('.result').html(data);
+ alert('Load was performed.');
+ });
+ var jqxhr = $.get("example.php", function () {
+ alert("success");
+ })
+ .success(function () { alert("second success"); })
+ .error(function () { alert("error"); })
+ .complete(function () { alert("complete"); });
+ jqxhr.complete(function () { alert("second complete"); });
+
+ $.get("test.php");
+ $.get("test.php", { name: "John", time: "2pm" });
+ $.get("test.php", { 'choices[]': ["Jon", "Susan"] });
+ $.get("test.php", function (data) {
+ alert("Data Loaded: " + data);
+ });
+ $.get("test.cgi", { name: "John", time: "2pm" },
+ function (data) {
+ alert("Data Loaded: " + data);
+ });
+ $.get("test.php",
+ function (data) {
+ $('body').append("Name: " + data.name)
+ .append("Time: " + data.time);
+ }, "json");
+ alert($('li').get());
+ $('li').get(0);
+ $('li')[0];
+ alert($('li').get(-1));
+ function disp(divs) {
+ var a = [];
+ for (var i = 0; i < divs.length; i++) {
+ a.push(divs[i].innerHTML);
+ }
+ $("span").text(a.join(" "));
+ }
+ disp($("div").get().reverse());
+ $("*", document.body).click(function (e) {
+ e.stopPropagation();
+ var domEl = $(this).get(0);
+ $("span:first").text("Clicked on - " + domEl.tagName);
+ });
+}
+
+function test_getJSON() {
+ $.getJSON('ajax/test.json', function (data) {
+ var items = [];
+ $.each(data, function (key, val) {
+ items.push('' + val + '');
+ });
+ $('', {
+ 'class': 'my-new-list',
+ html: items.join('')
+ }).appendTo('body');
+ });
+ var jqxhr = $.getJSON("example.json", function () {
+ alert("success");
+ })
+ .success(function () { alert("second success"); })
+ .error(function () { alert("error"); })
+ .complete(function () { alert("complete"); });
+ jqxhr.complete(function () { alert("second complete"); });
+ $.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?",
+ {
+ tags: "mount rainier",
+ tagmode: "any",
+ format: "json"
+ },
+ function (data) {
+ $.each(data.items, function (i, item) {
+ $("
").attr("src", item.media.m).appendTo("#images");
+ if (i == 3) return false;
+ });
+ });
+ $.getJSON("test.js", function (json) {
+ alert("JSON Data: " + json.users[3].name);
+ });
+ $.getJSON("test.js", { name: "John", time: "2pm" }, function (json) {
+ alert("JSON Data: " + json.users[3].name);
+ });
+}
+
+function test_getScript() {
+ $.getScript("ajax/test.js", function (data, textStatus, jqxhr) {
+ console.log(data);
+ console.log(textStatus);
+ console.log(jqxhr.status);
+ console.log('Load was performed.');
+ });
+ $.getScript("ajax/test.js")
+ .done(function (script, textStatus) {
+ console.log(textStatus);
+ })
+ .fail(function (jqxhr, settings, exception) {
+ $("div.log").text("Triggered ajaxError handler.");
+ });
+ $("div.log").ajaxError(function (e, jqxhr, settings, exception) {
+ if (settings.dataType == 'script') {
+ $(this).text("Triggered ajaxError handler.");
+ }
+ });
+ $.ajaxSetup({
+ cache: true
+ });
+ $.getScript("/scripts/jquery.color.js", function () {
+ $("#go").click(function () {
+ $(".block").animate({ backgroundColor: "pink" }, 1000)
+ .delay(500)
+ .animate({ backgroundColor: "blue" }, 1000);
+ });
+ });
+}
+
+function test_globalEval() {
+ jQuery.globalEval("var newVar = true;");
+}
+
+function test_grep() {
+ var arr = [1, 9, 3, 8, 6, 1, 5, 9, 4, 7, 3, 8, 6, 9, 1];
+ $("div").text(arr.join(", "));
+ arr = jQuery.grep(arr, function (n, i) {
+ return (n != 5 && i > 4);
+ });
+ $("p").text(arr.join(", "));
+ arr = jQuery.grep(arr, function (a) { return a != 9; });
+ $("span").text(arr.join(", "));
+ $.grep([0, 1, 2], function (n, i) {
+ return n > 0;
+ }, true);
+}
+
function test_mouseEvents() {
var i = 0;
$("div.overout").mouseover(function () {