Fixed typo in logic, also disabled function setters in this case to allow the functions to passthrough and bind.

This commit is contained in:
jeresig 2010-01-12 21:54:06 -05:00
parent b5f077ae6a
commit 8e53f7b5d6
5 changed files with 12 additions and 6 deletions

View file

@ -8,10 +8,10 @@ BASE_FILES = ${SRC_DIR}/core.js\
${SRC_DIR}/support.js\
${SRC_DIR}/data.js\
${SRC_DIR}/queue.js\
${SRC_DIR}/attributes.js\
${SRC_DIR}/event.js\
${SRC_DIR}/selector.js\
${SRC_DIR}/traversing.js\
${SRC_DIR}/attributes.js\
${SRC_DIR}/manipulation.js\
${SRC_DIR}/css.js\
${SRC_DIR}/ajax.js\

View file

@ -47,10 +47,10 @@
<fileset file="src/support.js" />
<fileset file="src/data.js" />
<fileset file="src/queue.js" />
<fileset file="src/attributes.js" />
<fileset file="src/event.js" />
<fileset file="src/selector.js" />
<fileset file="src/traversing.js" />
<fileset file="src/attributes.js" />
<fileset file="src/manipulation.js" />
<fileset file="src/css.js" />
<fileset file="src/ajax.js" />

View file

@ -772,7 +772,7 @@ function access( elems, key, value, exec, fn, pass ) {
// Setting one attribute
if ( value !== undefined ) {
// Optionally, function values get executed if exec is true
exec = exec && jQuery.isFunction(value);
exec = !pass && exec && jQuery.isFunction(value);
for ( var i = 0; i < length; i++ ) {
fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass );

View file

@ -919,8 +919,8 @@ jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblcl
return fn ? this.bind( name, fn ) : this.trigger( name );
};
if ( jQuery.fnAttr ) {
jQuery.fnAttr[ name ] = true;
if ( jQuery.attrFn ) {
jQuery.attrFn[ name ] = true;
}
});

View file

@ -12,7 +12,7 @@ test("Basic requirements", function() {
});
test("jQuery()", function() {
expect(22);
expect(23);
// Basic constructor's behavior
@ -63,9 +63,12 @@ test("jQuery()", function() {
equals( jQuery(document.body).get(0), jQuery('body').get(0), "Test passing an html node to the factory" );
var exec = false;
var elem = jQuery("<div/>", {
width: 10,
css: { paddingLeft:1, paddingRight:1 },
click: function(){ ok(exec, "Click executed."); },
text: "test",
"class": "test2",
id: "test3"
@ -78,6 +81,9 @@ test("jQuery()", function() {
equals( elem[0].firstChild.nodeValue, "test", 'jQuery quick setter text');
equals( elem[0].className, "test2", 'jQuery() quick setter class');
equals( elem[0].id, "test3", 'jQuery() quick setter id');
exec = true;
elem.click();
});
test("selector state", function() {