Well having finally gained the time to sit down and debug this
properly, I've concluded the following. I'm not sure who's ultimately
at fault here, someone better qualified than me will need to weigh in.

The cookie plugin for reading and writing cookies works off the basis
that:

- If a name and value are passed, it creates a cookie with those
values (and any other parameters).
- If only a name is passed, the corresponding cookie is read if
possible.
- If a name and null are passed, it expires the named cookie.

The trick is that the cookie plugin uses typeof to determine whether a
value was supplied, even if it is a null:

jQuery.cookie = function(name, value, options) {
    if (typeof value != 'undefined') { // name and value given, set
cookie

The call from jQuery UI to the plugin however, is not providing an
'undefined' type null, it is instead, an 'object' null. The following
is a copy paste from Firebug using console.log to display various
debug information at different points in the process. What you see is:

- The AJAX request
- An integer representing the number of cookies in memory
- A loop checking the value of each cookie
- An integer/null representing the value returned from the desired
cookie (adminUserTabs)
- Debug messages when the cookie plugin is creating a cookie (Writing:
value, typeof)

GET http://localhost/includes/js/ajax/user/display.php

200 OK
                266ms   admin.js (line 1)
4
Checking: Page=229
Checking: user=19404634fe79b34403a842e798db7407
Checking: PHPSESSID=fkp6fke0s68es03e0d0m4ggqb0
Checking: adminUserTabs=0
0
Writing: 0, number
Writing: 3, number
Writing: null, object
GET http://localhost/includes/js/ajax/user/display.php
GET http://localhost/includes/js/ajax/user/display.php

200 OK
                1.04s   admin.js (line 1)
3
Checking: Page=229
Checking: user=19404634fe79b34403a842e798db7407
Checking: PHPSESSID=fkp6fke0s68es03e0d0m4ggqb0
null
Writing: 0, number

Looking at this we can see that it is trying to write a null object,
which triggers the cookie plugin's expiry mechanism, and thus the tabs
do not re-initialise correctly.

--

You received this message because you are subscribed to the Google Groups 
"jQuery UI" group.
To post to this group, send email to jquery...@googlegroups.com.
To unsubscribe from this group, send email to 
jquery-ui+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/jquery-ui?hl=en.


Reply via email to