GithubHelp home page GithubHelp logo

cowboy / jquery-bbq Goto Github PK

View Code? Open in Web Editor NEW
1.2K 47.0 207.0 1.11 MB

jQuery BBQ: Back Button & Query Library

Home Page: http://benalman.com/projects/jquery-bbq-plugin/

License: GNU General Public License v2.0

PHP 6.86% JavaScript 93.14%

jquery-bbq's Introduction

jQuery BBQ: Back Button & Query Library

http://benalman.com/projects/jquery-bbq-plugin/

Version: 1.3pre, Last updated: 8/26/2010

jQuery BBQ enables simple, yet powerful bookmarkable #hash history via a cross-browser window.onhashchange event. In addition, jQuery BBQ provides a full jQuery.deparam() method, along with both fragment and query string parse and merge utility methods.

Visit the project page for more information and usage examples!

Documentation

http://benalman.com/code/projects/jquery-bbq/docs/

Examples

These working examples, complete with fully commented code, illustrate a few ways in which this plugin can be used.

http://benalman.com/code/projects/jquery-bbq/examples/fragment-basic/
http://benalman.com/code/projects/jquery-bbq/examples/fragment-advanced/
http://benalman.com/code/projects/jquery-bbq/examples/fragment-jquery-ui-tabs/
http://benalman.com/code/projects/jquery-bbq/examples/deparam/

Support and Testing

Information about what version or versions of jQuery this plugin has been tested with, what browsers it has been tested in, and where the unit tests reside (so you can test it yourself).

jQuery Versions

1.2.6, 1.3.2, 1.4.1, 1.4.2

Browsers Tested

Internet Explorer 6-8, Firefox 2-4, Chrome 5-6, Safari 3.2-5, Opera 9.6-10.60, iPhone 3.1, Android 1.6-2.2, BlackBerry 4.6-5.

Unit Tests

http://benalman.com/code/projects/jquery-bbq/unit/

Known issues

While the included jQuery hashchange event implementation is quite stable and robust, there are a few unfortunate browser bugs surrounding expected hashchange event-based behaviors, independent of any JavaScript window.onhashchange abstraction. See the following examples for more information:

Chrome: Back Button
http://benalman.com/code/projects/jquery-hashchange/examples/bug-chrome-back-button/

Firefox: Remote XMLHttpRequest
http://benalman.com/code/projects/jquery-hashchange/examples/bug-firefox-remote-xhr/

WebKit: Back Button in an Iframe
http://benalman.com/code/projects/jquery-hashchange/examples/bug-webkit-hash-iframe/

Safari: Back Button from a different domain
http://benalman.com/code/projects/jquery-hashchange/examples/bug-safari-back-from-diff-domain/

Release History

1.3pre - (8/26/2010) Integrated jQuery hashchange event v1.3, which adds document.title and document.domain support in IE6/7, BlackBerry support, better Iframe hiding for accessibility reasons, and the new jQuery.fn.hashchange "shortcut" method. Added the jQuery.param.sorted method which reduces the possibility of extraneous hashchange event triggering. Added the jQuery.param.fragment.ajaxCrawlable method which can be used to enable Google "AJAX Crawlable mode."
1.2.1 - (2/17/2010) Actually fixed the stale window.location Safari bug from jQuery hashchange event in BBQ, which was the main reason for the previous release!
1.2 - (2/16/2010) Integrated jQuery hashchange event v1.2, which fixes a Safari bug, the event can now be bound before DOM ready, and IE6/7 page should no longer scroll when the event is first bound. Also added the jQuery.param.fragment.noEscape method, and reworked the hashchange event (BBQ) internal "add" method to be compatible with changes made to the jQuery 1.4.2 special events API.
1.1.1 - (1/22/2010) Integrated jQuery hashchange event v1.1, which fixes an obscure IE8 EmulateIE7 meta tag compatibility mode bug.
1.1 - (1/9/2010) Broke out the jQuery BBQ event.special hashchange event functionality into a separate plugin for users who want just the basic event & back button support, without all the extra awesomeness that BBQ provides. This plugin will be included as part of jQuery BBQ, but also be available separately. See jQuery hashchange event plugin for more information. Also added the jQuery.bbq.removeState method and added additional jQuery.deparam examples.
1.0.3 - (12/2/2009) Fixed an issue in IE 6 where location.search and location.hash would report incorrectly if the hash contained the ? character. Also jQuery.param.querystring and jQuery.param.fragment will no longer parse params out of a URL that doesn't contain ? or #, respectively.
1.0.2 - (10/10/2009) Fixed an issue in IE 6/7 where the hidden IFRAME caused a "This page contains both secure and nonsecure items." warning when used on an https:// page.
1.0.1 - (10/7/2009) Fixed an issue in IE 8. Since both "IE7" and "IE8 Compatibility View" modes erroneously report that the browser supports the native window.onhashchange event, a slightly more robust test needed to be added.
1.0 - (10/2/2009) Initial release

License

Copyright (c) 2010 "Cowboy" Ben Alman
Dual licensed under the MIT and GPL licenses.
http://benalman.com/about/license/

jquery-bbq's People

Contributors

cowboy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jquery-bbq's Issues

document.domain breaks BBQ on IE6/7

We're using a cross sub-domain "bridge" in our application and so we need to set document.domain. Unfortunately this breaks your otherwise rock solid plugin. I've created a reproducable test case for you below. Orignally I thought our own hidden iframe was messing things up but as it turns out just setting document.domain is enough to trigger the problem.

I've tried playing around with the BBQ source (v1.2.1) but couldn't fix the problem. Apparently we may need to wait for IE6/7 to finish loading the iframe (??). I've also tried loading an html page that sets the document.domain in BBQ's hidden iframe but to no avail.

I hope I'm posting the example below correctly as this is the first time I'm using GIT. The example uses jquery 1.4.2 and bbq 1.2.1. IE67 will hit you with an "Access denied" error. Disabling the document.domain line in the example will fix the problem.

<!DOCTYPE html>
<html>
    <head>
        <title>[test] BBQ document.domain</title>

        <meta http-equiv="author" content="Marviq" />
        <meta http-equiv="description" content="Marviq jQuery" />
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <meta http-equiv="content-style type"content="text/css" />

        <link rel="stylesheet"    type="text/css"     href="../style/style.css"   />
        <link rel="shortcut icon" type="image/x-icon" href="../style/favicon.ico" />
    </head>
    <body>
        <div class="states">
            <a href="#state1">State 1</a>
            <a href="#state2">State 2</a>
            <a href="#state3">State 3</a>
        </div>
        <br />
        <div>
            Current state:
            <span class="currentState">None</span>
        </div>


        <script type="text/javascript" src="../lib/jquery-1.4.2.js"></script>
        <script type="text/javascript" src="../lib/jquery.ba-bbq.js"></script>

        <script type="text/javascript">
            $( document ).ready( function()
            {
                // Remove subdomain from document.domain
                //
                document.domain = document.domain.split( "." ).slice( -2 ).join( "." );

                $( window ).bind( "hashchange", function( e ) 
                {
                    var url = $.param.fragment();

                    if ( url )
                    {
                        $( ".currentState" ).text( url || "None" );

                        $( ".states a" ).css( "font-weight", "normal" );
                        $( ".states a[href='#" + url + "']" ).css( "font-weight", "bold" );
                    }
                    else
                    {
                        $.bbq.pushState( "#state1" );
                    }                    
                } ); 


                // Initial update
                //
                $( window ).trigger( "hashchange" );
            } );            
        </script>        
    </body>
</html>

jQuery hashchange - Safari 4 - Hash change event throws error after navigating to a page on a different domain

To reproduce (in Safari 4, OSX):

  1. Visit http://benalman.com/code/projects/jquery-hashchange/examples/hashchange/
  2. Click on the Test buttons to trigger hash change
  3. Visit http://google.com (or another domain)
  4. Click the back button several times. The first hash change will throw an error.

The error returned is:
TypeError: Result of expression 'url' [undefined] is not an object.
Line 91 on: jquery.ba-hashchange.js

Cheers & Thanks for the great plugin

IE 7,8 visited links not working when links go to page with hashchange

I created a page that has links on it that point to itself. I capture the hashchange and do an ajax call. The links do not show highlighted when I click on them and then go back. I changed the page to use ? instead of hashes, and it works great. I wonder if IE doesn't think that you fully loaded the linked page so it doesn't mark it as visited. I can create an example that reproduces the problem if necessary.

css breaks javascript on android 4.2

Hi,

I just struggled with this viewport-problem a long time.
When I saw your buggyfill, I was very excited as it worked fine on iOS.
But now I discovered that as soon as I apply the "content" css attribute, any javascript inside the element stops working on the Android native browser in Android 4.2.2.

Any idea for a workaround?

cheers!

malformed URI sequence (again)

I'm having a problem with parsing the query string using $.deparam.querystring(window.location.search) under Firefox 7.0.1. I type the query string in the address bar (?problem=ä) and hit enter, and it changes any umlauts into the "escape"-d version (so ä becomes %E4 and not %C3%A4. I then try parsing the querystring and get, logically enough, a malformed URI sequence (at line 406 in jquery.ba-bbq.js v1.2.1 to be precise).

My quick hack which seems to be doing the trick for me (tested in FF and IE) is to instead of just having decode as an alias of decodeURIComponent then to have it (in line 86 of jquery.ba-bbq.js v1.2.1) as

decode function (string) {
    try {
        return decodeURIComponent(string);
    } catch(e) {
        return unescape(string);
    }
};

This way we first try to do the proper thing, and then resort to cheap hacks if it didn't work properly.

Apart from being a bit quick'n'dirty, is there any reason not to do this?

IE8 converts certain parameters to HTML entities

I have this url

http://localhost:8080/dev/me.html#l=dynlists

In my code I push the state like this:

$.bbq.pushState({"copy": "dl-123456789});

Which produces an url like this

http://localhost:8080/dev/me.html#l=dynlists&copy=dl-123456789

IE8 interprets "&copy" part as HTML entity © (copyright sign), this results in the following url in IE8, which is obviously wrong.

http://localhost:8080/dev/me.html#l=dynlists&©=dl-123456789

I am using jQuery BBQ Version: 1.2.1

I haven't checked it in other versions of IE, they might have similar problem.

Prototype pollution vulnerability

👋 I know this repo is probably no longer maintained - I'm opening this issue for others out there on the internet who still might be using $.deparam and care about this sort of thing. You can grab the fix in my PR here: #61

To be clear also: If you care about security/prototype pollution and using jQuery BBQ, you should be on jQuery 3.4.0+ (and using one of the open PRs to enable jQuery 3 compatibility, e.g. #48 or #42). Otherwise you'll still be vulnerable to pollution via $.extend.

If you're continuing to use jQuery BBQ in production, I recommend maintaining your own fork with #48 and #61 merged/cherry-picked. You'll have to uglify/compress your own final output, but there are online YUI compressors you can easily use.

Reproducing

To see the prototype pollution in action:

Why does it matter?

Check the following more malicious examples:

Further reading on prototype pollution:

Doesn't work on Windows Phone (IE9 Mobile)

It appears IE9 mobile on Windows Phone Mango 7.5 doesn't fire the hashchange event, so BBQ is broken.

getState works fine, but after clicking a link (<a href="#key=value>), nothing happens.

malformed URI sequence

Hello everybody,

i have a little problem with this nice plugin.

The registered trademark sign "®" is url encoded "%AE" (escape("®") = "%AE").

If there is a "%AE" in the url, jQuery-BBQ throws an error: "malformed URI sequence".
Try this for example: $.deparam.querystring('http://example.com/?testRegisteredTradeMark=%AE');

It is not the "%" sign in general, as something like this works without problems:

$.deparam.querystring('http://example.com/?testRegisteredTradeMark=blank%20space');

Does anyone has an idea how to fix this issue?

Thank you very much in advance
Andreas

jQuery.param.querystring (build url) should use recursive merge (aka. deep copy).

jQuery.param.querystring (build url) does not currently merge params acordinly when using array typed queryStrings

Assume an URL like this:

var url = "?Obj[attr1]=a&Obj[attr2]=b";

If we wish to merge a data object like

var data = { Obj : { attr3 : c } };

we (or me) would expect the result from jQuery.param.querystring (url, data) to be:

"?Obj[attr1]=a&Obj[attr2]=b&Obj[attr3]=c"

But instead we get:

"?Obj[attr3]=c"

This is because when calling $.extend on jquery.bb-bbq.js at line 281, simple, and not recursive, merge is used

To solve this, the line should look like:
: $.extend( true, {}, url_params, params ); // passed params override url params

which solves the issue and returns the expected url.

Get into bower!

Would love it if I could add you to my dependencies list and manage source checkouts from there! :)

Would like to compile with Closure and advanced optimisations, IE7 breaks

I've modified the source minimally to work with Closure compiler and with the argument --compilation_level ADVANCED_OPTIMIZATIONS .

Also required are a few externs (place in external file):

function $() {}
$.fn.extend = function () {};
$.event.prototype.special;
$.expr;
$.browser;
$.browser.msie;
$.browser.opera;
$.browser.safari;
$.browser.webkit;
$.browser.version;

Also you need the jQuery externs file:
http://code.google.com/p/closure-compiler/source/browse/trunk/contrib/externs/jquery-1.6.js

Then you should be able to use this with Google's obfuscated jQuery:
https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js

The issue is not with the 'good browsers' (which this list is now: IE8+, Firefox 3.6+, Safari, Chrome). It's with IE7 and I think I'm losing an important symbol that is required to register a custom event with jQuery but I'm not sure which.

Using Visual Studio debugger, I've followed when $.bbq.pushState (its obfuscated name) fires and it never reaches the history_set() function.

Original code (some modifications like [] notation to keep names and ordering of functions in IE-specific section):
https://gist.github.com/c7683b6f0fd422dddc8d

Obfuscated code with notes on the original functions and some questions:
https://gist.github.com/a307b98f2dc422d965af

Any help would be appreciated. Thanks

deparam.querystring() returns abnormal results for URLs without a query string

Normally $.deparam.querystring() will return an object containing only the query string values. If called on a URL which does not contain ? it will return an object containing the URL itself, e.g.

$.deparam.querystring("http://google.com/")
Object
    http://google.com/: ""
    __proto__: Object

This means that anyone intending to pass the result back into a function like $.param.querystring has to remember to include a check for this condition if the URL lacks a querystring altogether

jQuery.param.fragment strange behavior

Hello (again), i think i'm very unlucky because there isn't a lot of issues for BBQ and it's my second one !

Also i dunno if it's really a bug or not so, a nice example page to show :

http://jsbin.com/exuvu/6#hello=yes

We have this behavior on our website, jQuery.param.fragment without parameters return window.location (from the doc but i think what you means is the current window.location.hash modified..) without the # in it.

But jQuery.param.fragment('', 'hello=yes') returns #hello=yes so we can't compare values without stripping the #.

Is this the desired behavior ?

Using back button after leaving the page (IE6/IE7)

This only applies to IE6/IE7.

I have found this behavior to be the case using example2 - http://benalman.com/code/projects/jquery-bbq/examples/fragment-advanced/.

The back/forward button works well while in the page but if I then go to another page then use the back button to return to example2 and then use the back button again I am sent to the page before example2.

So

Page 1: google
Page 2: example 2
Page 3: example 2- chicken
Page 4: example 2- chicken and steak
Page 5: clicked through to basic window.onhashchange example

Then use the back button which return to page 4. example 2- chicken and steak
Then use the back button which returns to page 1. google

In Firefox and IE8 I am able to click through all the pages.

The back button works beautifully while I remain on the page - the behavior only occurs if I leave the page.

Is this a (feature) of IE6/IE7 or can something be done?

BBQ in HTA, IE6/7 - hidden iframe cannot load .hta file

The IE6/7 hashchange fix breaks down in an HTA (HTML Application), as the source of the hidden iframe is set to the hta url. But IE doesn't treat an .hta as a regular HTML file, but rather as a file to be downloaded. Under default settings, IE prompts the user to download the .hta file; and also raises an error, as the iframe.document is null.
On the other hand, an hta has no history, back, or forward, either - attempting to change the window.location.href to another file results in that other file being opened in IE - so the 'back button' of BBQ is rather useless.
Nevertheless, BBQ is still very useful for passing state to another instance of an HTA via the command line, and for maintaining state history within the current instance - the hash alone can be changed without difficulty.

I can suggest a possible fix - allow disabling the IE6/7 fix, even under the appropriate IE version; and the internal get_history/set_history should act on an internal array of changed hashes.

pushState executing target code?

I'm having a problem. Calling pushState ultimately calls "window[ str_location ][ str_href ] = url + ( /#/.test( url ) ? '' : '#' );" In Firebug I can see that this line is firing off a 2nd call of the same page. Typically it says "aborted". The problem is this goes as far as to execute my php auto_append_file which is included in every file and this causes double logging in my stats and is driving me crazy. If I comment out the window[ str_location ] line at the end of the pushState function, it doesn't double log, but of course that breaks the back button.

Release 1.1 Breaks Visual Studio Intellisense

Using Visual Studio 2008 and jQuery 1.3.2. I'm getting an error stating

"
Warning 1 Error updating JScript IntelliSense: \Scripts\jquery.bbq.js: 'undefined' is null or not an object @ 786:2
"

deParam() mangles large numbers

Part of the deParam() code tries to parse numeric values into Javascript numbers. However, since javascript stores all numbers as doubles, any number larger than around 2^53 will suffer a loss of precision when converted.

E.g.:
var longNum = "123456789012346578901234567980";
var urlStr = "http://www.example.com/?key=" + longNum;
var url = $.url.parse(urlStr);
alert(url.params['key']); // 1.2345678901234658e+29

In my code I worked around this by changing:
val = val && !isNaN(val) ? +val // number
to
val = val && !isNaN(val) && val < 0x20000000000000 ? +val // number

How to make it work in IE6/IE7/IE8-compat

Hello, I read all the docs, tons of issues I can't make my script to work, IE keep throwing me "Access is denied" error.
Using:

  • jQuery BBQ: Back Button & Query Library - v1.2.1 - 2/17/2010
  • jQuery hashchange event - v1.2 - 2/11/2010

Is there something I need to set, or change?

Thanks in advanced.

Is the LICENSE "MIT & GPL" or "MIT OR GPL"?

Hi,

Just wanted to check what the license for this is. I'm always unsure when the statement is "dual licensed under MIT and GPL", which I interpret as both licenses applying instead of a selection the user can make, but wanted to check.

Thanks,
Matt

Can qs be part of state

It seems not possible to push state anything else than fragments. Which causes the question, why is there code for query string? You can't push it, make it part of state, query string params will also be turned to fragments.

Using only fragment is not a problem of course but the documentation suggest you can also do something with query strings - which is not the case. pushState pushes everything as fragment.

$.param.fragment: "Uncaught TypeError: Cannot read property '3' of null"

I'm using BBQ 1.3-min - it seems pretty awesome. However, I cannot get the critical $.param.fragment() function to work. When I try even a canonical example from the documentation, such as:
var newUrl = $.param.fragment( "index.php", "/path/to/file.php", 2 );

I get the following error in Chrome for that line:
Uncaught TypeError: Cannot read property '3' of null

Removing the final parameter (2) has no effect.

Any chance this is not on my end?

$.param($.deparam('foo[10000000]=bar')); // breaks the world

See the subject. I'm not sure if this is really a bug, per se, but it's certainly an unintuitive problem.

In my particular situation I'm working with a form that has a key that represents a very high-value incremental id in the database. Serializing it provides a string not unlike the value in the subject.

The problem starts here:
$.deparam('foo[10000000]=bar'); // [undefined, undefined, undefined, 9999998 more...]

Converting this data back to a string will break the browser.

Working with objects would resolve this problem:

$.deparam('foo[10000000]=bar'); // { foo: {'1000': 'bar'} }

Not sure if this has any other functional implications, however.

'window' parameter for module

I'm currently having trouble running my jQuery extension tests due to the 'window' parameter that is specified at the start of the module.

Is this really necessary? I've not seen it specified for any other jQuery extensions before.

release jquery-bbq-v1.3

The jQuery.fn.hashchange() in jquery-hashchange-v.1.3 is not included in the relatively standard jquery-ba-bbq-1.2.1 minified version. I’m not sure what else has changed in jquery-bbq itself, but to get the new hashchange code, it would be nice to have the user get the hashchange minified version separately from jquery-bbq or for the combined minification to at least have the best version of each plugin.

removeState & param.fragment questions

Hello Mr Alman,

I am currently merging two projects. One that uses bbq and one that doesn't. I have a feeling I will have to convert the latter to bbq.

I have a question concerning removeState & param.fragment

My observations :

removeState seems to leave the leading hash when there's only one state.

  1. (starting url) - example.com
  2. (param.fragment) - example.com/#content=about
  3. (removeState) - example.com/#

param.fragment seems to convert "already there" hashes to the a=b&c=d format

  1. (starting url) - example.com/#content
  2. (param.fragment) - example.com/#content=&modal=about
  3. (removeState) - example.com/#content=

My question :

I can see why this is happening, but are there options to do otherwise? i.e. Remove leading hash if there are no more "states" & not convert existing hash?

Cheers

Android Browser (WebKit) hashchange event does not fire after zoom/resize

Got a brand new toy (HTC Desire) and went to try out my AJAX-heavy site that uses BBQ (great plugin btw - thank you!) - found my nav wasn't working after I resized (pinch/zoom) the page. Figured it was mine but verified the problem also exists with this default example:

http://benalman.com/code/projects/jquery-bbq/examples/fragment-basic/

To reproduce - go to above page with HTC Desire (my version info below) and wait for it to load. Click on the Chicken/Kababs link - it will work fine. Now zoom out or in with multi-touch/pinch and try links again. They no longer work.

Am I going crazy here? Thanks very much in advance.

-Gaucho

Browser useragent reports version as: Mozilla/5.0 (Linux; U; Android 2.1-update1; en-gb; Desire_A8181 Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17

Merging content on links

Hi

I have this example: http://nuno.zymichost.com/mysites/teste2/

If you click on the first link, it will show loaded content by BBQ plugin. Then if you close the panel and click in the second link, this will merge the first content with the second content!! Why?

It´s suposed to load just the second content!!

Can someone help me with this?

Many thanks in advance

Support location.replace in pushState

It will be good if pushState can use location.replace for chage state. It may be vary helpful on app initialization. When user open short form of url, app automaticaly set default state in hash with replace current url in history, so even first state wil work with back/next right.

So jq_bbq.pushState will look something like:
jq_bbq.pushState = jq_bbq_pushState = function (params, merge_mode, useReplace) {
if (is_string(params) && /^#/.test(params) && merge_mode === undefined) {
// Params string begins with # and merge_mode not specified, so completely
// overwrite window.location.hash.
merge_mode = 2;
}

    var has_args = params !== undefined,
    // Merge params into window.location using $.param.fragment.
  url = jq_param_fragment(location.href,
    has_args ? params : {}, has_args ? merge_mode : 2);

    // Set new window.location.href. Note that Safari 3 & Chrome barf on
    // location.hash = '#' so the entire URL is set.
    if (!useReplace || !location.replace) {
        location.href = url;
    }
    else {
        location.replace(url);
    }
};

named function expression

In self.start there is a named function expression: loopy which will cause issues in IE browsers, but more specifically the blackberry browser. One possible solution is to remove the function name and use arguments.callee... although I'm not sure if this is kosher.

Loading content and animation

I observed that the bbq-content is display before all elements are loading. In fact, I think the css pagination is not loaded at the end of the ajax loading.
When the content loaded via ajax appears after loading, the css content is not take in account. So I see the css pagination in action after loading. So my container size, font and background colors (for example) are display after and all the things move.
This is not really clean.

Is there a way to wait that all content and css are loaded before to display it?

I have an other question about the way that the bbq-content is displayed. Is it possible to add an animation insteed of just showing the content suddenly? Like add this kind of animation:

'$( '.bbq-content' ).animate({ height: "100%" },1000);'

I tryed to add this animation but it don't works great....

Sorry for my english, I'm french...

BBQ dead?

Is jquery-bbq dead?

@cowboy If you are no longer maintaining it but wouldn't mind someone else taking over, please let us know so we at least know what to do!

Cheers and thnx for the great plugin =)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.