Merge branch 'master' of github.com:jquery/jquery into deferred
This commit is contained in:
commit
97b32d7830
10 changed files with 105 additions and 49 deletions
29
src/ajax.js
29
src/ajax.js
|
@ -121,9 +121,8 @@ jQuery.each( "ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".sp
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
jQuery.extend({
|
jQuery.each( [ "get", "post" ], function( i, method ) {
|
||||||
|
jQuery[ method ] = function( url, data, callback, type ) {
|
||||||
get: function( url, data, callback, type ) {
|
|
||||||
// shift arguments if data argument was omited
|
// shift arguments if data argument was omited
|
||||||
if ( jQuery.isFunction( data ) ) {
|
if ( jQuery.isFunction( data ) ) {
|
||||||
type = type || callback;
|
type = type || callback;
|
||||||
|
@ -132,13 +131,16 @@ jQuery.extend({
|
||||||
}
|
}
|
||||||
|
|
||||||
return jQuery.ajax({
|
return jQuery.ajax({
|
||||||
type: "GET",
|
type: method,
|
||||||
url: url,
|
url: url,
|
||||||
data: data,
|
data: data,
|
||||||
success: callback,
|
success: callback,
|
||||||
dataType: type
|
dataType: type
|
||||||
});
|
});
|
||||||
},
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
jQuery.extend({
|
||||||
|
|
||||||
getScript: function( url, callback ) {
|
getScript: function( url, callback ) {
|
||||||
return jQuery.get(url, null, callback, "script");
|
return jQuery.get(url, null, callback, "script");
|
||||||
|
@ -148,23 +150,6 @@ jQuery.extend({
|
||||||
return jQuery.get(url, data, callback, "json");
|
return jQuery.get(url, data, callback, "json");
|
||||||
},
|
},
|
||||||
|
|
||||||
post: function( url, data, callback, type ) {
|
|
||||||
// shift arguments if data argument was omited
|
|
||||||
if ( jQuery.isFunction( data ) ) {
|
|
||||||
type = type || callback;
|
|
||||||
callback = data;
|
|
||||||
data = {};
|
|
||||||
}
|
|
||||||
|
|
||||||
return jQuery.ajax({
|
|
||||||
type: "POST",
|
|
||||||
url: url,
|
|
||||||
data: data,
|
|
||||||
success: callback,
|
|
||||||
dataType: type
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
ajaxSetup: function( settings ) {
|
ajaxSetup: function( settings ) {
|
||||||
jQuery.extend( jQuery.ajaxSettings, settings );
|
jQuery.extend( jQuery.ajaxSettings, settings );
|
||||||
},
|
},
|
||||||
|
|
|
@ -1038,6 +1038,11 @@ function doScrollCheck() {
|
||||||
jQuery.ready();
|
jQuery.ready();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Expose jQuery as an Asynchronous Module
|
||||||
|
if ( typeof define !== "undefined" ) {
|
||||||
|
define( "jquery", [], function () { return jQuery; } );
|
||||||
|
}
|
||||||
|
|
||||||
// Expose jQuery to the global object
|
// Expose jQuery to the global object
|
||||||
return (window.jQuery = window.$ = jQuery);
|
return (window.jQuery = window.$ = jQuery);
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,8 @@ jQuery.extend({
|
||||||
uuid: 0,
|
uuid: 0,
|
||||||
|
|
||||||
// Unique for each copy of jQuery on the page
|
// Unique for each copy of jQuery on the page
|
||||||
expando: "jQuery" + jQuery.now(),
|
// Non-digits removed to match rinlinejQuery
|
||||||
|
expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ),
|
||||||
|
|
||||||
// The following elements throw uncatchable exceptions if you
|
// The following elements throw uncatchable exceptions if you
|
||||||
// attempt to add expando properties to them.
|
// attempt to add expando properties to them.
|
||||||
|
|
|
@ -600,6 +600,12 @@ jQuery.Event = function( src ) {
|
||||||
if ( src && src.type ) {
|
if ( src && src.type ) {
|
||||||
this.originalEvent = src;
|
this.originalEvent = src;
|
||||||
this.type = src.type;
|
this.type = src.type;
|
||||||
|
|
||||||
|
// Events bubbling up the document may have been marked as prevented
|
||||||
|
// by a handler lower down the tree; reflect the correct value.
|
||||||
|
this.isDefaultPrevented = (src.defaultPrevented || src.returnValue === false ||
|
||||||
|
src.getPreventDefault && src.getPreventDefault()) ? returnTrue : returnFalse;
|
||||||
|
|
||||||
// Event type
|
// Event type
|
||||||
} else {
|
} else {
|
||||||
this.type = src;
|
this.type = src;
|
||||||
|
|
|
@ -440,12 +440,12 @@ jQuery.buildFragment = function( args, nodes, scripts ) {
|
||||||
var fragment, cacheable, cacheresults,
|
var fragment, cacheable, cacheresults,
|
||||||
doc = (nodes && nodes[0] ? nodes[0].ownerDocument || nodes[0] : document);
|
doc = (nodes && nodes[0] ? nodes[0].ownerDocument || nodes[0] : document);
|
||||||
|
|
||||||
// Only cache "small" (1/2 KB) strings that are associated with the main document
|
// Only cache "small" (1/2 KB) HTML strings that are associated with the main document
|
||||||
// Cloning options loses the selected state, so don't cache them
|
// Cloning options loses the selected state, so don't cache them
|
||||||
// IE 6 doesn't like it when you put <object> or <embed> elements in a fragment
|
// IE 6 doesn't like it when you put <object> or <embed> elements in a fragment
|
||||||
// Also, WebKit does not clone 'checked' attributes on cloneNode, so don't cache
|
// Also, WebKit does not clone 'checked' attributes on cloneNode, so don't cache
|
||||||
if ( args.length === 1 && typeof args[0] === "string" && args[0].length < 512 && doc === document &&
|
if ( args.length === 1 && typeof args[0] === "string" && args[0].length < 512 && doc === document &&
|
||||||
!rnocache.test( args[0] ) && (jQuery.support.checkClone || !rchecked.test( args[0] )) ) {
|
args[0].charAt(0) === "<" && !rnocache.test( args[0] ) && (jQuery.support.checkClone || !rchecked.test( args[0] )) ) {
|
||||||
|
|
||||||
cacheable = true;
|
cacheable = true;
|
||||||
cacheresults = jQuery.fragments[ args[0] ];
|
cacheresults = jQuery.fragments[ args[0] ];
|
||||||
|
|
|
@ -147,7 +147,7 @@
|
||||||
jQuery.support.shrinkWrapBlocks = div.offsetWidth !== 2;
|
jQuery.support.shrinkWrapBlocks = div.offsetWidth !== 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.innerHTML = "<table><tr><td style='padding:0;display:none'></td><td>t</td></tr></table>";
|
div.innerHTML = "<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";
|
||||||
var tds = div.getElementsByTagName("td");
|
var tds = div.getElementsByTagName("td");
|
||||||
|
|
||||||
// Check if table cells still have offsetWidth/Height when they are set
|
// Check if table cells still have offsetWidth/Height when they are set
|
||||||
|
|
|
@ -1,7 +1,12 @@
|
||||||
var jQuery = this.jQuery || "jQuery", // For testing .noConflict()
|
var jQuery = this.jQuery || "jQuery", // For testing .noConflict()
|
||||||
$ = this.$ || "$",
|
$ = this.$ || "$",
|
||||||
originaljQuery = jQuery,
|
originaljQuery = jQuery,
|
||||||
original$ = $;
|
original$ = $,
|
||||||
|
commonJSDefined;
|
||||||
|
|
||||||
|
function define(module, dependencies, callback) {
|
||||||
|
commonJSDefined = callback();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns an array of elements with the given IDs, eg.
|
* Returns an array of elements with the given IDs, eg.
|
||||||
|
|
|
@ -12,7 +12,9 @@ test("Basic requirements", function() {
|
||||||
});
|
});
|
||||||
|
|
||||||
test("jQuery()", function() {
|
test("jQuery()", function() {
|
||||||
expect(23);
|
expect(24);
|
||||||
|
|
||||||
|
strictEqual( commonJSDefined, jQuery, "CommonJS registered (Bug #7102)" );
|
||||||
|
|
||||||
// Basic constructor's behavior
|
// Basic constructor's behavior
|
||||||
|
|
||||||
|
|
|
@ -295,6 +295,41 @@ test("live/delegate immediate propagation", function() {
|
||||||
$p.undelegate( "click" );
|
$p.undelegate( "click" );
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test("bind/delegate bubbling, isDefaultPrevented (Bug #7793)", function() {
|
||||||
|
expect(2);
|
||||||
|
var $anchor2 = jQuery( "#anchor2" ),
|
||||||
|
$main = jQuery( "#main" ),
|
||||||
|
fakeClick = function($jq) {
|
||||||
|
// Use a native click so we don't get jQuery simulated bubbling
|
||||||
|
if ( document.createEvent ) {
|
||||||
|
var e = document.createEvent( "MouseEvents" );
|
||||||
|
e.initEvent( "click", true, true );
|
||||||
|
$jq[0].dispatchEvent(e);
|
||||||
|
}
|
||||||
|
else if ( $jq[0].click ) {
|
||||||
|
$jq[0].click(); // IE
|
||||||
|
}
|
||||||
|
};
|
||||||
|
$anchor2.click(function(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
});
|
||||||
|
$main.delegate("#foo", "click", function(e) {
|
||||||
|
equals( e.isDefaultPrevented(), true, "isDefaultPrevented true passed to bubbled event" );
|
||||||
|
});
|
||||||
|
fakeClick( $anchor2 );
|
||||||
|
$anchor2.unbind( "click" );
|
||||||
|
$main.undelegate( "click" );
|
||||||
|
$anchor2.click(function(e) {
|
||||||
|
// Let the default action occur
|
||||||
|
});
|
||||||
|
$main.delegate("#foo", "click", function(e) {
|
||||||
|
equals( e.isDefaultPrevented(), false, "isDefaultPrevented false passed to bubbled event" );
|
||||||
|
});
|
||||||
|
fakeClick( $anchor2 );
|
||||||
|
$anchor2.unbind( "click" );
|
||||||
|
$main.undelegate( "click" );
|
||||||
|
});
|
||||||
|
|
||||||
test("bind(), iframes", function() {
|
test("bind(), iframes", function() {
|
||||||
// events don't work with iframes, see #939 - this test fails in IE because of contentDocument
|
// events don't work with iframes, see #939 - this test fails in IE because of contentDocument
|
||||||
var doc = jQuery("#loadediframe").contents();
|
var doc = jQuery("#loadediframe").contents();
|
||||||
|
|
|
@ -1247,3 +1247,20 @@ test("jQuery.cleanData", function() {
|
||||||
return div;
|
return div;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test("jQuery.buildFragment - no plain-text caching (Bug #6779)", function() {
|
||||||
|
expect(1);
|
||||||
|
|
||||||
|
// DOM manipulation fails if added text matches an Object method
|
||||||
|
var $f = jQuery( "<div />" ).appendTo( "#main" ),
|
||||||
|
bad = [ "start-", "toString", "hasOwnProperty", "append", "here&there!", "-end" ];
|
||||||
|
|
||||||
|
for ( var i=0; i < bad.length; i++ ) {
|
||||||
|
try {
|
||||||
|
$f.append( bad[i] );
|
||||||
|
}
|
||||||
|
catch(e) {}
|
||||||
|
}
|
||||||
|
equals($f.text(), bad.join(''), "Cached strings that match Object properties");
|
||||||
|
$f.remove();
|
||||||
|
});
|
||||||
|
|
Loading…
Reference in a new issue