javascript - Uncaught ReferenceError: showCategory is not defined -
javascript - Uncaught ReferenceError: showCategory is not defined -
i've defined function named showcategory. however, reason debugger telling me show category not defined. , won't load/generate json pages. says "uncaught typeerror: cannot read property 'replace' of undefined"
$.ajax({ type: 'get', url: 'http://jsonstub.com/bike/1', contenttype: 'application/json', beforesend: function (request) { request.setrequestheader('jsonstub-user-key', '50caee73-c7ed-43b7-912a-7fd6fcdbfd91'); request.setrequestheader('jsonstub-project-key', '54fb5790-b2cc-432f-88ee-7d3596b700bd'); } }).done(function showcategory( urlobj, options ) { var categoryname = urlobj.hash.replace( /.*category=/, "" ), category = categorydata[ categoryname ], pageselector = urlobj.hash.replace( /\?.*$/, "" ); if ( category ) { var $page = $( pageselector ), $header = $page.children( ":jqmdata(role=header)" ), $content = $page.children( ":jqmdata(role=content)" ), markup = "<p>" + category.description + "</p><ol>", content = "<p>" + category.content + "</p>", image = "<div class='image'><img src='" + category.picurl + "'></img></div>" , citems = category.items, numitems = citems.length; ( var = 0; < numitems; i++ ) { markup += "<li>" + citems[i].name + "</li>"; } markup += "</ol>"; $header.find( "h3" ).html( category.name ); $content.html( markup + content + image ); $page.page(); $content.find( ":jqmdata(role=listview)" ).listview(); options.dataurl = urlobj.href; $.mobile.changepage( $page, options ); } }) $(document).bind( "pagebeforechange", function( e, info ) { if ( typeof data.topage === "string" ) { var u = $.mobile.path.parseurl( data.topage ), re = /^#category-item/; if ( u.hash.search(re) !== -1 ) { showcategory( u, data.options ); e.preventdefault(); } } });
i tried somethings won't work. ideas whats wrong?
demo jsfiddle
define showcategory
function outside of done
method of ajax request , phone call it.
function showcategory(args){ //stuff } $.ajax({ //ajax stuff }).done(function(data){showcategory(argstakenfromdata)}) $(document).bind( "pagebeforechange", function( e, info ) { if ( typeof data.topage === "string" ) { var u = $.mobile.path.parseurl( data.topage ), re = /^#category-item/; if ( u.hash.search(re) !== -1 ) { showcategory( u, data.options ); e.preventdefault(); } } });
should help.
upd changed reply little bit in done
function call. still errors, cause forgot define categorydata
array, or don't see it's declaration, please tell in comments, so, seek out along declaring arr , tell me result.
javascript jquery json jquery-mobile
Comments
Post a Comment