Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
jQuery 1.3 ßeta (jquery.com)
54 points by auston on Dec 22, 2008 | hide | past | favorite | 28 comments


Misread as "SSeta"


Can anyone tell me what new features can still be added to jquery? It looks pretty feature complete to me.

I wish they focused more on jquery-ui, as I find that a bit lacking at the moment.


We aren't really talking about the features of this release, yet, since we want people to focus on testing (to make sure we didn't break anything). But here's a rough breakdown of the code that's in:

New Selector Engine (Sizzle: http://github.com/jeresig/sizzle/tree/master). Much faster than previous engine, going to be in many of the major libraries.

No more browser sniffing (currently being discussed here: http://www.reddit.com/r/programming/comments/7l2mr/jquery_re...).

.closest() method - extremely useful for event delegation.

    // Returns this or closest ancestor that matches selector
    $(this).closest("div");
.live() - Super-simple event delegation.

    // Will handle clicks on all elements that match selector
    // even if new ones are added later
    $("#foo > div").live("click", someFn);
.offset() rewrite - significantly faster, uses no browser sniffing.

.hide()/.show() rewrite - 50% - 200% faster.

.append/prepend/before/after rewrite - 10-15x faster.

While the biggest feature of this release is performance, the new event delegation methods are going to be super-useful.

As to jQuery UI - there are multiple teams within the jQuery project - the core jQuery team works on the jQuery library and the jQuery UI team works on jQuery UI. In their last update (about a week ago) the UI team said that UI 1.6 final was going to be out before the end of the month.


I'm really happy with these recent upgrades. Especially in regards to event delegation, not having an effective baked in solution for event delegation was one of my biggest complaints about the previous releases.


Yum, I'm glad .live() is in the core.


How different is .live() from .bind()? does this mean we do not have to .unbind() and .bind() when we want to create events for dynamically created DOM elements?


Would you consider adding something like .live() for CSS? (Or maybe it already does that.)


Unfortunately it's not as simple as it is with events. With events you have the advantage of binding to a single point (e.g. the document node) and using the native event bubbling that exists in all browsers to capture any event that occurs on the page. This way we can detect a click on a new DOM element that we haven't seen before.

We don't have that luxury with CSS. There's no universal way for all browsers to let JavaScript know when a new element has been added to the page - or that it's been moved. There's the W3C DOM mutation events but they aren't implemented everywhere.

More info: http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-e...


What? I thought you could just edit the stylesheet object.

Thanks for your quick response.


Well, we could certainly inject new stylesheet rules but that's bound to cause problems since we're at the mercy of the browser CSS engines. I suspect that most jQuery users enjoy writing selectors like "div:first > span" which will be completely null-and-void once we step out of our protected JavaScript garden. Since we can't get full API compatibility it really makes the prospect not very exciting for us.


World's best javascript library now gets better.


Mmm.. jQuery makes me giddy. This week, I wondered if something akin to jQuery but running server-side would be useful. (Modifying the DOM before it hits the client.)



I tried Jaxer but it seems to not follow the usual MVC pattern we all know and love. I don't know if it supports method chaining goodness ala jQuery though.


http://github.com/choonkeat/hquery/tree/master

Hquery: Uses pure HTML as "template" for rendering views a Hpricot sequence (in the .hquery counter-part file) is executed to modify the pure HTML and the resulting HTML is output to the browser.


Has anyone ever run into issues manipulating table rows or columns? I have on several occasions experienced problems with cells not being properly displayed after appending or toggling.


Do you have any examples? Have you filed any bugs in the jQuery bug tracker? http://dev.jquery.com/



I'd like a more expansive AJAX API that is capable of handling HTTP headers.


"capable of handling HTTP headers" - can you expand on this a bit?

Right now you can set HTTP headers in jQuery like so:

    $.ajax({
      beforeSend: function(xhr){
        xhr.setRequestHeader("Accept","application/json");
      },
      ... other options ...
    });
More info: http://docs.jquery.com/Ajax/jQuery.ajax#options


I'd like it that if the server sent back Content-type: application/json then jquery would automatically put it in json, and not require dataType: 'json'.

And it would really be nice if the "simple" ajax functions also allowed doing something if there was an error.


That is a pretty niche feature, I personally wouldn't do something like that.

Check out getResponseHeader() if you are so inclined.

As for the errors, there are many ways to check for "ajax" errors, for one thing you can check the status or statusText property.


Niche? I guess you don't use json. jquery already autodetects xml, why not json too? It's not even hard - it's right in the content type.

I know how to detect errors, that was hardly my point. I was suggesting an improvement, not tech support.


You don't have to eval xml.


You don't have to eval JSON.

http://www.json.org/js.html


http://www.json.org/json2.js

// In the third stage we use the eval function to compile the text into a

// JavaScript structure. The '{' operator is subject to a syntactic ambiguity

// in JavaScript: it can begin a block or an object literal. We wrap the text

// in parens to eliminate the ambiguity.


http://www.json.org/json_parse.js

// This is a function that can parse a JSON text, producing a JavaScript

// data structure. It is a simple, recursive descent parser. It does not use

// eval or regular expressions, so it can be used as a model for implementing

// a JSON parser in other languages.


Yes, but even better would be to use jQuery's excellent JSONP method.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: