Commit graph

132 commits

Author SHA1 Message Date
timmywil 4baa213d88 First proposed solution for IE6/7 get/setAttribute quirks. Needs more testing, but solves some issues 2011-04-03 19:13:38 -04:00
timmywil 607210e010 Speed up hasAttr a little 2011-04-03 19:13:38 -04:00
timmywil 5eecb13fa3 Now passes in IE8, changed around $.hasAttr and switched the attrHook for selected to be a propHook 2011-04-03 19:13:38 -04:00
timmywil de79e8c7e0 Make the new attr/prop changes pass the test suite (in Webkit). There are still errors in IE.
+ Added hooks for selected, checked, readonly, disabled to removeAttr if set to falsey

+ Removed all attrs from attrFix, these aren't needed for setAttribute

+ If prop is used for class, do we want a propFix for class?

  - We could just assume the user should know to use className with prop.  I've done the latter for now.

+ Created tests for $.fn.prop and $.fn.removeProp

  - Actually all I did was change broken attr tests to prop where it made sense.
2011-04-03 19:13:38 -04:00
jeresig ab4e300919 Very crude first pass at splitting apart the attr/prop logic. Also adding in attrHooks/propHooks. All of it is completely untested. 2011-04-03 19:13:38 -04:00
timmywil 64a0005a3b A more modest valHooks proposal
- The main difference is that this does not allow arbitrarily adding hooks to any collection of elements.

- Modularizes val into a set of easily maintainable and conditional hooks.

- valHooks is placed at jQuery.valHooks

  + This could technically be extended, but I do not see it being used except in very rare cases since you can only apply valHooks to nodeNames and input types, and not a collection of elements as before. We could theoretically privatize valHooks taking it off of jQuery and only use it internally for our own convenience, but again, I do not believe this patch carries with it the dangers of the first proposal.

- Slightly improved performance of val on radios and checkboxes for browsers that support checkOn, given the conditional attachment of its hook.
2011-04-02 17:05:04 -04:00
jeresig d4e4414451 Very crude first pass at splitting apart the attr/prop logic. Also adding in attrHooks/propHooks. All of it is completely untested. 2011-03-06 22:47:40 -05:00
rwldrn 43a41ba7ec Make sure .val() works after form.reset() in IE. Fixes #2551. 2011-02-10 23:50:02 +01:00
Colin Snover 8e59a99e0a Change the way jQuery.data works so that there is no longer a chance of collision between user data and internal data. Fixes #6968. 2011-01-09 15:52:33 -06:00
Colin Snover 3e0cc81504 Clean trailing whitespace from all files. 2010-12-30 00:34:48 -06:00
Anton M cc9dbd06e5 Fix attr() problems in IE with attribute nodes. Followup to commit b50f41a2.
IE can't add properties on an attribute-node element, thus we handle it
like text-/comment-nodes.
2010-12-07 03:17:42 +01:00
John Resig d4a9d45527 Merge branch 'restrictAttr' of https://github.com/jitter/jquery into jitter-restrictAttr 2010-12-06 17:02:00 -05:00
Anton M df0a3fb853 Handle carriage return characters in className property. Fixes #7673. 2010-12-01 21:31:22 +01:00
Anton M b50f41a2e3 Make sure attr() works on non DOM element nodes. Fixes #7202, #7451, #7500.
Also added some tests for this attr(name), attr(name, value) and removeAttr(name).
2010-11-13 14:39:28 +01:00
Anton M 49f088f2db Partially revert commit a64dc04050.
Removing the conditional was too liberal as now attr() would even work
on plain javascript objects. Keeping a check to make sure it is at least
a DOM Node is appropriate. Using nodeName as in the commit which introduced
the nodeType === 1 check seems plausible.
2010-11-10 00:36:53 +01:00
Colin Snover a64dc04050 Remove conditional that prevents attr from working on non-Element nodes. Fixes #7451. 2010-11-09 15:52:20 -05:00
John Resig fb48ae8e6c Make sure that when multiple variables are being declared that assignments are each done on their own line. 2010-11-09 11:09:07 -05:00
Alex Sexton 086822e641 Moved jQuery.props to attributes since it was only used in support. Fixes #6897 - suggestion by dmethvin 2010-10-25 02:31:19 -05:00
Colin Snover b03416954d Coerce all array values to strings before comparison in val(). Fixes bug #7123. 2010-10-08 22:48:06 -05:00
John Resig c7c0677230 Make .attr(name, null) equivalent to removeAttr(name). (Was roughly this before - but is now consistent across platforms). Fixes #6341. 2010-09-28 11:12:13 -04:00
jeresig d558e9eb6f Some minor cleanup of the last commit. 2010-09-27 10:21:50 -04:00
jeresig 97d468fbf0 Add a feature test for options inside a disabled select. Follow-up to 157a383dae. 2010-09-27 10:19:55 -04:00
jeresig a384d840d6 Only do the hasAttribute check if the method exists - IE falls back to the === null check below which allows this to still work. Follow-up to cb40495b21 - thanks to @jitter for the catch. 2010-09-27 09:19:21 -04:00
jeresig 157a383dae Bug fix for commit 2c4b20809e - technique wasn't working as expected in WebKit browsers. Thanks to @jitter for the bug fix. 2010-09-27 09:07:54 -04:00
dmethvin 0636dffc24 Make .val(undefined) == .val("") and chainable; fixes #4130.
Ensure .val(null) sets an empty string on IE6/7; fixes #5163.
2010-09-25 05:57:14 +08:00
Dave Methvin 2c4b20809e Don't have .val() return selected-but-disabled options, or selected options inside a disabled optgroup. Doesn't change the .val() returned for a disabled select. Fixes #3240, adapted from Nathan Hammond's patch there. 2010-09-24 17:26:22 -04:00
jeresig 8e1d369710 Some minor lint fixes for the RegExp. 2010-09-22 09:46:21 -04:00
jeresig 9dc6e0c572 Applied the RegExp issues reported by Jeff Robinson here: http://jmrware.com/articles/2010/jqueryregex/jQueryRegexes.html Additionally broke out all remaining inline RegExp. Fixes #7062. 2010-09-22 09:16:28 -04:00
jeresig a44ec40277 Make sure that jQuery works even when the individual modules are loaded separately AND jQuery.noConflict(true) is used. Fixes #7011. 2010-09-08 12:00:29 -04:00
John Resig 920099b29c First pass at unifying the various CSS methods in jQuery (jQuery.style, jQuery.curCSS, and jQuery.css are now all under jQuery.css). 2010-09-05 10:17:18 -04:00
John Resig cb40495b21 Make sure that missing attributes return undefined in Blackberry 4.7. Fixes #6938. 2010-08-24 07:28:47 -07:00
John Resig 392174431a .val() on empty options returns the text value rather than the value in Blackberry 4.7. Fixes #6932. 2010-08-23 14:10:39 -07:00
John Resig 396dd21273 Fixing getting/setting classes and makeArray(RegExp) for Blackberry 4.7. Fixes #6930, #6931. 2010-08-23 12:38:55 -07:00
jeresig 8effe3a7de Made it so that you no longer need to build jQuery in order to run the test suite (but you'll still need a checkout of QUnit and Sizzle, at least). 2010-03-23 12:12:16 -04:00
jeresig 437ddb931d No need to run trim on every class iteration in addClass, thanks for the heads-up Leeoniya. 2010-02-13 14:30:27 -05:00
jeresig 83a044f1b5 Make sure that no extra whitespace is leftover after an addClass. Fixes #6050. 2010-02-13 02:18:38 -05:00
tomviner 8a66a30fec spelling mistake (insead) 2010-02-06 10:50:57 +08:00
jeresig e76ba32ceb Make sure the resulting className from removeClass is nicely trimmed. Fixes #5988. 2010-02-01 21:33:58 -05:00
jeresig a6ef036bb6 Centralize the logic for throwing exceptions. Fixes #5913. 2010-01-23 16:48:47 -05:00
jeresig 21e15219be Removed .removeAttr(Function), it didn't really make sense. 2010-01-07 11:14:56 -05:00
jeresig d36b29fa8e Make sure the state is passed in to the toggleClass attribute function. 2010-01-07 11:04:21 -05:00
jeresig 4681216c4b Fixed some bugs relating to the setter arg change in val and html. Also optimized the code in val a bit. 2010-01-07 09:53:16 -05:00
jeresig 2526e29353 Fixing some bugs in the re-tooling of toggleClass, adding in some performance optimizations. 2010-01-06 15:23:30 -05:00
jeresig 600d314538 A first pass at making sure that all the setter function arguments receive the index of the element and a relevant value to work with. Fixes #5763. 2010-01-06 15:08:07 -05:00
jeresig a00e63ea5a Make a feature detect for the attribute selected code. Fixes #5702. 2009-12-22 15:46:54 -05:00
jeresig 7b0b348419 The option isn't, necessarily, hidden when this occurs. 2009-12-22 15:06:27 -05:00
jeresig 4729f4d443 Make sure that selected works in Safari on options in optgroups. Fixes #5701. 2009-12-22 15:02:52 -05:00
jeresig e87b090cb7 The logic for specified option values was already handled by .val(), removed the unnecessary code. 2009-12-22 02:03:41 -05:00
jeresig 1e64d58183 Make sure that the correct value is being pulled from checkboxes in Webkit. Fixes #5699. 2009-12-22 02:00:46 -05:00
jeresig 1b67aaee74 Make sure that the correct value is retreived for options that have no value specified, in IE 6. Continues to fix #5697. 2009-12-22 01:28:37 -05:00
jeresig f298cce100 Made sure that the .val() logic for setting radios and checkboxes was correct. Fixes #5698. 2009-12-22 01:18:49 -05:00
jeresig 261b7efb5f Fixed the issue where getting an empty value was impossible. Fixes #5697. 2009-12-22 00:24:23 -05:00
jeresig 3776cbe314 Standardize on using double-quotes for string literals. 2009-12-21 20:13:16 -05:00
jeresig 61e37d4149 Made a number of spacing changes to bring the code more-inline with the jQuery Core Style Guideline. 2009-12-21 19:58:13 -05:00
jeresig d40083c866 Disabled the passthrough .attr(method_name) functionality. You can now use it if you do: .attr({method_name: value}, true) OR as an easy initialization method: jQuery('<div/>', {html: '...', id: 'test'}). 2009-12-18 12:41:53 -05:00
jeresig 27d65b59f9 Backing out the change from 841f9ff7a1, it was ineffectual in Internet Explorer. Keeping the broken test case, for now, so that we can check into the issue some more. 2009-12-18 11:30:04 -05:00
jeresig f036630692 Brought the attributes module more inline with the jQuery style guidelines. 2009-12-18 11:27:56 -05:00
jeresig 100ed68642 Stick with just getter/setters in attrFn. 2009-12-17 12:23:04 -05:00
jeresig f078e930ed Reverted accidental commit in 5197ac9fc8. 2009-12-16 16:54:21 -05:00
Batiste Bieler 649024909d Enforce that hasClass and removeClass work even with tabs and endlines in class attributes. Fixes #5505. 2009-12-14 16:24:28 -05:00
jeresig b4b30cc683 Disable getting values using the .attr() function shortcut until the full implications of which can be explored. 2009-12-14 01:15:02 -05:00
John Resig 638c093b85 Fixed typo from commit 542099a278. 2009-12-11 12:47:41 -08:00
John Resig ecdcda870c Missed the case of bind in the new attr multi-setter. 2009-12-10 14:03:24 -08:00
John Resig f25eedf32a Restrict the attr quick setters to only methods that specifically ask for the functionality. Fixes #5612. 2009-12-09 21:28:33 -08:00
Yehuda Katz 1a4d1904ae Fix up whitespace and a couple of glitches. 2009-12-09 21:17:10 -08:00
Yehuda Katz da51cd0e43 Add function values to addClass, removeClass, toggleClass, text, and removeAttr 2009-12-09 20:57:53 -08:00
David Petersen 841f9ff7a1 Handle changing form attributes correctly when there is a child element with the same name. Fixes #4299 2009-12-09 14:43:55 +08:00
Karl Swedberg ddb86f8d5b added curly braces around all if/else statements 2009-11-28 04:09:14 +08:00
Ariel Flesler 5550356a12 jquery attributes: closes #5234. attr() supports jQuery.fn methods. 2009-09-15 17:23:26 +00:00
Ariel Flesler d1285504fb jquery core: Closes #5189. Added a generic function to handle getting/setting key-value/setting a hash. 2009-09-09 21:14:28 +00:00
John Resig 96dd06ea50 Removed jQuery.className.(has|remove|add) in favor of .addClass/removeClass/hasClass. Also rewrote the functions for additional performance. 2009-09-08 01:07:50 +00:00
John Resig 9c9dd7cede Fix for incorrect options being selected (noticed same problem with radio/checkbox and fixed it there, as well). Fixes #4962. 2009-07-23 22:16:29 +00:00
John Resig 48e9a39995 Standardize on using .nodeName in place of .tagName. Fixes jQuery bug #4923. 2009-07-19 13:32:53 +00:00
John Resig 0d5c3a68a0 Standardizing on .test() and .exec() - moving away from using .match() for RegExp. Fixes jQuery bug #4113. 2009-07-19 13:21:51 +00:00
Yehuda Katz 7d7a960035 Support for .foo(Function) and testing. TODO: More tests 2009-07-12 20:19:43 +00:00
John Resig 2a268f5f4b Fixes regression in .attr(), patch by David Flanagan. Fixes #4884. 2009-07-11 13:57:38 +00:00
Brandon Aaron e45b41602f make sure toggleClass does not delete classNames when forcefully removing classes and they are already removed 2009-05-02 22:35:39 +00:00
Brandon Aaron 5e6e53835e toggleClass can now toggle multiple classNames (space seperated list) and toggle the whole className. fixes #3825. 2009-05-02 21:14:38 +00:00
Brandon Aaron f8ef75eb91 remove trailing spaces 2009-03-23 01:55:17 +00:00
Brandon Aaron d7d908b05a decoupling styles retrieval from the attr method 2009-03-22 23:25:03 +00:00
Brandon Aaron 9476530fa1 moving some vars from manipulations.js to attributes.js 2009-03-22 15:06:58 +00:00
Brandon Aaron 7c04a64016 breaking jquery out into smaller modules. added attributes.js, manipulation.js, and traversing.js 2009-03-18 21:15:38 +00:00