jquery.compat-1.3.js not working for me... Too many bugs... Probably my bugs...
I'm having all kinds of problems with the backwards compatible plugin your team has released. I'll load both jquery.1.4.js and the compat plugin. The first error: It produces "windowData" is not defined. If I comment out your jQuery.data function and reload the page, then the jQuery.fn.init causes the whole page to become a single event, which triggers a "Want to bookmark this page" in Firefox. If I comment out the jQuery.fn.init function, then the page half works, and causes even more errors. And
Google JS Tools
In case anyone is interested, I just stumbled on this product from google... http://code.google.com/closure/ With a web interface and REST API http://closure-compiler.appspot.com/home And a Firebug extension... http://code.google.com/closure/compiler/docs/inspector.html --
Is it necessary for event.handle to removes namespaces ( liveHandler )
By removing the namespace in handler, it makes it impossible for liveHandler to figure out which events to call back. I know this is to normalize "click.foo" into "click", but is this necessary? I'm not sure how to get live to work with namespaces if handle does this.
IE-bug: cloning a form
Hi, I am having issues with cloning a form: after cloning, the new element does not execute the same events as the original. An example can be found here: http://thinkjavache.be/jQuery/test-deep-clone.html I suspect that this isn't really an issue with the event-copying. When I inspect the generated HTML in the IE Developer Tools I see that the cloned form looks something like this: It seems obvious that the submit-event won't fire then, since it isn't contained in a form-element. How can I prevent
'src' attribute selector fails on IMG tag when combined with a direct descendant selector
I reported this as a bug back when all the awesome 14 days stuff was going on, so I wanted to just reference it here in the forum and see if anyone else came across this problem (or my ticket ). The long and short of it is that when you attempt to find a specific `img` element by its `src` attribute, it works fine with normal selectors like this: $("img[src='logo.png']"); // Works $("#test > img[src='logo.png']"); // Works However, when you combine it with a direct descendant selector, it fails:
Annoying... $('<div>',{'class':'name'})
What about adding an alias to map cls to class when constructing fragments with $(html, object). It is starting to strongly annoy me that every single time I want to add classes, I have to quote the 'class'. Can't fight ECMAscript, but I see no reason why we cant do a {class:'name'}. Am I alone? (And I really DO love the $(html, object), in case you suggest to not use it. It just feels retarded to write 'class'.) -- Aivo --
Obscure IE bug in jQuery 1.4
I was having some problems with jQuery 1.4 in IE8, and after much debugging, found out what was causing it (at least in the sense that I figured out how to make it stop). Any page that included a call to $.post() or $.get() gave the error "Object doesn't support this property or method" on line 4792 of the unminified jquery file, which reads: return new window.XMLHttpRequest();I found out that the problem went away when I moved this meta tag <meta http-equiv="Content-Type" content="text/html; charset=utf-8"
V8 team fixes JSON.parse()
Good news ... http://code.google.com/p/v8/issues/detail?id=372 If anyone remembers how jQuery forum JSON.parse "upheaval" started ( a month ago?). When we noticed that JSON.parse() allows illegal JSON string syntax ? And when strict conformance to JSON syntax was introduced. Well I made a little fuss over there and I was notified today this is fixed , inside V8. Now it just has to surface in some near future CHROME update. This news might ( just might!) allow jQuery ajax *not* to do "manual" checking
jQuery.filter inline with ES5
jQuery.fn.filter also works with callbacks (apart selectors, and elements). jQuery.filter doesn't. I would propose to integrate jQuery.grep inside jQuery.filter and to make those aliases. Also consider that there is intention to add a jQuery.forEach that would be inline to the ES5 spec, and making jQuery.filter inline with that spec too would be a logical move anyway. Here is a my try: http://gist.github.com/290689 If this would happen, jQuery.filter will be moved from traversing.js to core.js, I
I think GitHub hates my comments
For some reason my comments don't show up on GitHub. For example on this commit: http://github.com/dieseltravis/jquery/commit/56dec13e279fbb7c06155e93c2f5ff5d073489ce#comment_44576 There are comments from Ralph and John. But if you click the little bubble to the left of the code, then click "All" in the top right of that dialog you can see that I've made comments that are hidden for some reason. Do I accidentally have something set that hides my comments? --Travis
$.readyList is no longer exposed in 1.4?
just curious as to what the rationale was for changing the readyList array from a public property to a private variable with the 1.4 release. i realize that direct manipulation of the readyList could have some unexpected results, especially in team-based dev environments. with that being said, however, there are cases where direct manipulation of the readyList can be very helpful. consider the following: i work for a company with a huge site that uses third-party tracking/analytics software. the
jQuery SlickSpeed suite?
I noticed in the release notes that John Resig has a customized version of SlickSpeed that tests jQuery methods as well as using the "common selectors" instead of the default SlickSpeed set:Here's an example (sorry for asking about it twice, I assume John doesn't check Flickr comments regularly): http://ejohn.org/files/jquery1.4/slick/?type=class Is there anywhere this suite could be downloaded? I'd like to have it around while messing with jQuery performance improvements.
Trigger shouldn't be recursive
If trigger is going to follow how an event normally bubbles, shouldn't it calculate the parents before calling event handlers on each node. If the DOM changes, or an element gets removed, it won't bubble correctly. I realize this is optimized for stopPropagation, but it seems incorrect. I can submit a patch if this is something jQuery is interested in.
wondering about the design rationale for serializeArray
The serializeArray function seems to make the assumption that this is either an existing form or element array. This also excludes serialization of partials without the end user doing extra work when using serialize which seems like a common use case with ajax applications. I'm wondering why this decision was made versus in the case where this is neither a form nor an array the core would extract the form input, select, :checked, etc. elements from the subtree of this? serializeArray: function()
jQuery.inArray to accept a function?
I was reading the documentation for inArray earlier this morning, and I love the idea of a cross-browser indexOf. It's pretty neat. I sometimes deal with arrays of objects, though, so it would be neat to have the ability to use inArray to give the index of a particular object based on a function that you pass. Example: var arr = [{"foo": "bar"}, {"foo": "foo"}]; var index = $.inArray(function(obj) { // index === 0 return obj.foo === "bar"; }, arr); Is there a better way to do something like this
Issue with $.selector
Hi, I am developing a plugin and I ran into this problem (simplified here): $.fn.test = function(fn){ fn.apply($(this).eq(0)); }; $('#footer').test(function(){ alert($(this).selector) });I'm alerting $(this).selector which should say "#footer", but instead says "#footer.slice(0,1)". I get that the slice(0,1) is there because I applied fn in the context of $(this).eq(0) however, that is not a valid selector at all. Is this a glitch or expected behavior? It says in the documentation that $.selector
jQuery.fx.prototype.update
Hi, In jQuery.fx.prototype it says, this.elem.style.display="block" Why? Because I have 2 display:inline-block divs next to each other. Because of the change of the display, during a animation the right one will be under the first one instead of staying next to it, at the right. Thanks, Eric J.
cannot set "selected"="selected" via attr() on <option> elements?
this is a continuation/split off of http://forum.jquery.com/topic/clone-true-not-copying-select-data-if-not-explicitly-set-by-selected-attribute is this attr() magic at work?....cause $("div").attr("selected","selected") does work. the primary purpose of my needing to do it is for cloning, making .val() not a viable alternative cause cloneNode doesn't copy over the selectedIndex property. (the testcase is in the original thread) i could not think of any workaround using jQuery. thanks, Leon
jQuery.error not working in IE 6+
I have not been able to get jQuery.error to work properly in IE. Here's an example: http://jsbin.com/etoxo/4 It should error on document ready, but all it says is "Exception thrown and not caught". Is this expected behavior? Thanks, Matt
Possible bug when using live to listen for change events in IE8
I had to reopen http://dev.jquery.com/ticket/5851 since it seems that IE8 is detecting the change event when using live, but only on the second change of an element. Firefox 3.5 works as expected.
extend Sizzle's form pseudo-selectors
Since $.fn.serialize/$.fn.serializeArray was updated to grab the new html5 input types in 1.4, I wonder what people think about adding short-cuts to these in Sizzle, i.e., $(':url, :email, :tel, :search').doSomethingBuzzwordy() //plus the restThe actual patch would be extremely simple, but I'm curious if other people think this would be useful. If so, I could submit a patch and tests, once I'm off all this pain medication. For those unfamiliar with the new input types, here's a demo page, with
IE 8 fadeTo problem with inline elements
Hi, I just wanted to report a small bug with fadeTo method in Internet Explorer 8. It won't work if your element as "display" set to "inline". I found that you need to put it to "inline-block" and then it works perfectly. There is nothing about this on the web and it's not the first time I have this problem. Don't know if it's the right way to report this issue, but i'm sure someone will read this post :) Thanks David
$.contains() returning 16/0 instead of true/false?
is this a bug or am i doing something wrong? <div id="A"> <span id="B"></span> </div> <span id="C"></span> console.log($.contains($("#A")[0], $("#B")[0])); // logs 16 console.log($.contains($("#A")[0], $("#C")[0])); // logs 0 Leon
Handling extended prototype
I know there was some discussion a while back about handling extended object prototypes. Was this set as 'wontfix' or did the discussion just fizzle out ?
Proposal for delay(duration, [data,] callback [,postpone])
I suggest to add a new signature for delay like delay(duration, [data,] callback [,postpone]), allowing to delay soe functionality on dom elements. And if calling .stop() before the duration passes, the callback would effectively be forgotten. It might seem a crazy idea, but consider the following situation: You would like to auto-save changes that user has made, but do not wan't to make too many AJAX requests. At the moment the code would look like something similar to: (and that is just the frame,
Leading and Trailing white space
The simplest and fastest rx-es that work are /^[\s\xA0]+/ and /[\s\xA0]+$/ (thanks travis.hardiman) jquery-1.4.1.js (arround line#3859 ) has : rleadingWhitespace = /^\s+/, which is perhaps a bug because IE does not cover \u00A0, as a white-space If I may suggest, introduction of : rleadingWhitespace = /^[\s\xA0]+/, rtrailingWhitespace = /[\s\xA0]+$ , somewhere at the top of jQuery enclosure, where all the jQuery wide, var's are declared. to be used wherever required/needed. This
.clone(true) not copying <select> data if not explicitly set by "selected" attribute?
.clone(true) does not seem to copy which option was selected if the "selected" attribute is not set (like when a user just chooses an option with the mouse)? Works: <select id="type_id"> <option value="1">user</option> <option value="2" selected="selected">admin</option> </select> Fails: <select id="type_id"> <option value="1">user</option> <option value="2">admin</option> </select> Code: var orig = $("#type_id").val(); var clone = $("#type_id").clone(true).val(); console.log(orig)
originalTarget not set on handler-passed events in IE8
ran into the issue of originalTarget not being set inside the passed event to a keydown handler in IE8 (maybe other IEs). i'm not sure how much normalizing is supposed to be done in jQ for events, so i'm unsure if this is by design or just missed? for now resorting to using the following: which works in FF3 and IE8 e.originalTarget || e.srcElement; thanks, Leon
.live() types of events, number of events and more
Hi, I've been away from the discussions for almost an year, and I'm hoping to contribute again. I've serched in the bug tracker for bugs that I could handle and found 2 related live bugs: #5804 - enhancement: .live('focus') proxys through to .live('focusin') #5801 - enhancement: support .live('hover',fn) After some tohgh I noted that live doesn't support binding multiple events at once. So I filled a new enhancement request (5852) and started a proposal to achieve the 3 at the same time. My initial
.live() not working properly when using multiple events
In jQuery 1.4 Hawtness #1, with Paul Irish, there is a code snippet that binds multiple events to a selector using the .live() method. Here is the JS: $(document).ready()funciton(){ $('div.hoverbox').live('mouseenter mouseleave',function(e){ var isEnter = (e.type === 'mouseenter'); $(this).css('backgroundColor', isEnter ? 'red' : 'blue'); }); }); Here is the HTML: <div class="hoverbox" style="height:100px;width:100px;">Hello World!</div> The code does not work properly when
WebSockets and jQuery
Before we get 100+ long threads about pros-and-cons of WebSockets and pros-and-cons of jQuery core using them or wrapping them in any way. Before any of that, here are a few simple facts about WebSockets, today. Q1:: Are WebSockets, actually part of HTML5 ? A1 :: No ( They were developed as part of HTML5 originally. ) Q2 :: Can Appache out-of-the-box support WebSockets? Can IIS ? A2:: No ( WebSockets is not part of HTTP; it's a separate protocol and needs separate servers (though it can be integrated
regression: incorrect default context applied to .ajax error callback in jquery1.4
As the example on http://jsfiddle.net/FPcVB/ shows, the success callback correctly sets `this` as the .ajax object, however the error callback does not. This works in jQuery 1.3.2 as you can see at http://jsfiddle.net/YWpEP/
Get key-value pairs from serializeArray?
serializeArray returns [{name:"foo",value:"bar"},{name:"baz",value:"bat"}] If a user simply wants key-value pairs that reflect the form's current state (as just came up in #jQuery) , he has to write the logic himself, and then doesn't get access to the useful tests that take place in the .filter() in serializeArray(). Or needs to .serialize() to a string and then parse that back out into an object, uggerz. One could use something like Ben Alman's $.deparam to do that, too, however, I think it makes
focusin() and trigger('focusin') fire handlers but dont actually focus the element?
i'm not sure if this is by design or not, but while both of the following lines fire the bound handlers, they fail to actually focus the element itself. $("#a").trigger('focusin'); $("#a").focusin(); i'm sure it's a pretty easy fix, but for the time being i have to resort to using focus() to trigger the focusin handlers + element focusing. thanks, Leon
nextuntil and prevuntil do not support attribute selectors
Hi. I am trying to fetch some rows of a table. each row having a classname starting with "pysj" is a course. those rows that follow these rows, but do not them selves contain this class name, should also be considered being a part of the previous course. In other words, I need to select all elements matching $(this).nextUntil("[class^=pysj]") and then do something with them. This however, errors out with the following error: elem.getAttribute is not a function http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.js
$.proxy() Position of Parameters
jQuery.proxy( function, scope ) functionThe function whose scope will be changed. scopeThe object to which the scope of the function should be set. version added: 1.4jQuery.proxy( scope, name ) scopeThe object to which the scope of the function should be set. nameThe name of the function whose scope will be changed (should be a property of the 'scope' object. Above is the current API for the proxy method. First, I am a noob. Second, why the position switch for scope? Wouldn't it be simpler to
jQuery.get method : trying to understand source code
get: function( url, data, callback, type ) { // shift arguments if data argument was omited if ( jQuery.isFunction( data ) ) { type = type || callback; callback = data; data = null; } return jQuery.ajax({ type: "GET", url: url, data: data, success: callback, dataType: type }); }, Above is the jQuery.get method from ajax.js . I was wondering why the 4th line is is type = type || callback; I think that line should be type = callback; The way I see it, if data is function then type *must* be nil
jQuery.each() "this" seems broken in 1.4
Previously to 1.4, the "this" in a jQuery.each() loop would output the same thing the valueOfElement in the callback(indexInArray, valueOfElement). In my example I have an array of strings and now in 1.4 "this" outputs some sort of array where each element is a letter. For example: Version 1.3.2 var arr = [ "one", "two", "three", "four", "five" ]; jQuery.each(arr, function() { console.log(this); // outputs "one" for example }); Version 1.4 var arr = [ "one", "two", "three", "four", "five" ];
Issues with live() documentation
At http://api.jquery.com/live/ , the example at the bottom for custom events is: <!DOCTYPE html> <html> <head> <style> p { color:red; } span { color:blue; } </style> <script src="/scripts/jquery-1.4.js"></script> </head> <body> <p>Has an attached custom event.</p> <button>Trigger custom event</button> <span style="display:none;"></span> <script> $("p").live("myCustomEvent", function(e, myName, myValue){ $(this).text("Hi there!"); $("span").stop().css("opacity", 1)
jQuery require and script loaders
I heard about the jQuery require that is shown as part of this changeset: http://github.com/jquery/jquery/commit/998cb005fc378188b3bae319e391d1b7881b7ad2 I work on Dojo's module loader, and have a new standalone (no other library dependency) script loader here: http://code.google.com/p/runjs/wiki/RunJs The goal is to keep RunJS compatible with the goals of CommonJS (avoiding globals mainly) but still allow for a module syntax that works well natively in the browser. It does not use XHR calls, just
Next Page