317 East River St.Savannah,GA31401
Savannah-Downtown
There's some quality items on this menu, including pizza, burgers and steaks, but people come from far and wide to eat Spanky's original chicken fingers and golden-brown spuds. With four convenient locations to choose from, the casual, family friendly restaurant is a great place to cool off, meet up with friends and have a fun time. Just look for the yellow and white awning. A Best of Savannah selection.
- Bar,
- Music Venue,
- American,
- Pizza,
- Sandwiches,
- Burgers,
- Best of Savannah,
- CS Pickup Locations,
- Menu
Add an event
Update This Location
Map
'); popup.append('
'); var closer = jQuery(''); popup.append(closer); /** * Create an overlay to anchor the popup to the map. */ var overlay = new ol.Overlay({ element: popup.get(0), autoPan: true, autoPanAnimation: { duration: 250 } }); map.addOverlay(overlay); /** * Add a click handler to hide the overlay. * @return {boolean} Don't follow the href. */ closer.click(function(e) { overlay.setPosition(undefined); e.target.blur(); return false; }); function updateInfoBox(overlay, event) { var map = event.map; var pixel = map.getEventPixel(event.originalEvent); var features = map.getFeaturesAtPixel(pixel, {hitTolerance: 20}) || []; if (overlay && features.length) { var feature = features[0]; var content = jQuery(overlay.getElement()).find('.popup-content'); const id = feature.get('id'); const url = feature.get('url'); const name = feature.get('name'); const teaser = feature.get('teaser'); const address = feature.get('address'); const addresssupplement = feature.get('addresssupplement'); const city = feature.get('city'); const state = feature.get('state'); const postalcode = feature.get('postalcode'); const phone = feature.get('phone'); const neighborhoodgroup = feature.get('neighborhoodgroup'); const neighborhood = feature.get('neighborhood'); const category = feature.get('category'); var info = jQuery("
"); if (typeof url !== 'undefined' && url !== '') { info.append('
' + name + '
'); } else { info.append('
' + name + '
'); } (teaser) && info.append(''); var details = jQuery(''); (addresssupplement) ? details.append('' + address + '' + ' ' + addresssupplement + '') : details.append('' + address + ''); details.append(' ' + city + ', ' + '' + state + ' ' + '' + postalcode + ''); (phone) && details.append('
' + phone + ''); info.append(details); /* div.details */ content.html(info.html()); overlay.setPosition(event.coordinate); } else { overlay.setPosition(undefined); } return; } map.on('singleclick', function(evt) { if (evt.dragging) { overlay.setPosition(undefined); return; } updateInfoBox(overlay, evt); }); if (false) { /* */ function updateMousePointer(overlay, event) { var map = event.map; var pixel = map.getEventPixel(event.originalEvent); var features = map.getFeaturesAtPixel(pixel, {hitTolerance: 20}) || []; if (overlay && features.length) { jQuery(`#bestOfLocationMap`).css({ cursor: 'pointer'}); } else { jQuery(`#bestOfLocationMap`)[0].style.removeProperty(`cursor`); } } map.on('pointermove', function(evt) { updateMousePointer(overlay, evt); }); } Foundation.OpenLayers.Maps['mapsmall-map'].map = map }) .fail(function () { console.warn('/foundation/scripts/ol.js not loaded.') });
Nearby
Morrell Park
0.01 miles
River Street
0.01 miles
University of Georgia Small Business Development Center
0.01 miles
The Shrimp Factory
0.02 miles
River Street Marketplace and Dock
0.02 miles
Graveface Museum
0.02 miles
") var data = formEl.serializeArray() data.push({"name":"ajaxComponent", "value":componentId}) var handle = jQuery.ajax({ url: url, data: data, }).done( function(r) { contentEl.html(r) contentEl.height("auto") }) } jQuery(document).ready( function(e) { selectorEl.on("change", updateNearby) }) })(jQuery)
'); } else if (jQuery(this).attr("id") == "sortSelect"){ jQuery("#Comments [uk-spinner]").show(); } var url = "/location/spankys-river-street-2128942"; var myStart = jQuery(this).attr("id") == "sortSelect" ? "1" : jQuery(this).attr("rel"); var showAllComments = jQuery(this).attr("id") == "showAllComments" ? "yes" : "no"; if (!myStart) var myStart = "1"; var mySort = jQuery("#sortSelect").val() || "liked"; /* commented out to prevent jacking up
\r\n\r\n \r\n \r\n Note: Since you've already made live comments \r\n to day(s)ay, this and any additional comments in this timeframe will be \r\n reviewed by our staff before being made live. Thank you for your contribution!\r\n \r\n\r\n <\/div>" : ''; var commentListWrapper = "
- " + "<\/ul>"; if (oid){ var params = { ajaxComponent: componentId, commentOid: oid, cb: commentCB() }; jQuery.ajax({ url: commentComponentUrl, data: (params), success: function (data) { jQuery('span.descriptionWordsLeft').text("0"+" words left.") jQuery('progress.postCommentTextProgress').attr('value','0') function insertNewComment () { // if (jQuery(commentListWrapperSel).length == 0){ jQuery("#"+componentId+"_commentContent") .append(commentListWrapper) } // jQuery(commentListWrapperSel) .append(limitMsg+data) .find(".brandNewComment") .fadeIn(); var reEditTime = 300000 var t=setTimeout(function(){removeEdit(oid)},reEditTime); var progressSel = '#' + componentId + '-comment-' + oid + ' [fdn-comment-edit-options] progress' var timerSel = '#' + componentId + '-comment-' + oid + ' [fdn-edit-timer]' jQuery(progressSel) .attr('max', reEditTime) .attr('value', 0) var countDown = setInterval(function(){ var val = parseInt(jQuery(progressSel).val()) || 0 val = Math.min(reEditTime, val + 1000) var minutes = Math.floor((reEditTime - val) / 1000 / 60 % 10) var seconds = Math.floor((reEditTime - val) / 1000 % 60) .toString().replace(/^\d$/, function(m) { return '0' + m }) jQuery(progressSel).val(val) jQuery(timerSel) .text(minutes + ':' + seconds) if(val >= reEditTime - 1000){ clearInterval(countDown) } },1000) var myTotal = parseInt(jQuery("#comments_total").text(), 10); myTotal++; updateCommentTotals(false,myTotal); } jQuery('.fdn-comments-header-block').removeClass('uk-hidden') insertNewComment() } }); } } function doLikeComment(e){ e.preventDefault(); if (!this.clicked){ var oid = jQuery(this).attr("data-commentOid"); jQuery("#Comments #"+oid+"_likeLinks a").addClass("dimmed").css("opacity","0.4").each(function(){this.clicked = true;}); var myCurrentLikes = jQuery("#"+oid+"_rating_likes").html() || 0; var myCurrentDislikes = jQuery("#"+oid+"_rating_dislikes").html() || 0; var thisRating = jQuery(this).attr("rel"); if (thisRating == "Like"){ myCurrentLikes = parseFloat(myCurrentLikes)+1; } else { myCurrentDislikes = parseFloat(myCurrentDislikes)+1; } // var myNewLine = '' + myCurrentLikes + ' like'; // if (myCurrentLikes != 1) { // myNewLine += 's'; // } // myNewLine += ', ' + '' + myCurrentDislikes + ' dislike'; // if (myCurrentDislikes != 1) { // myNewLine += "s"; // } // jQuery("#"+oid+"_rating_sub").html(myNewLine); // jQuery("#"+oid+"_rating_sub").show(); var params = { oid: oid, rating: thisRating, cb: commentCB() }; jQuery.ajax({ url: "/gyrobase/Tools/AjaxLike", type: "POST", data: (params), dataType: 'json', success: function (data) { console.log(data) jQuery("#"+data.oid+"_rating_likes").html(data.rating.likes) jQuery("#"+data.oid+"_rating_dislikes").html(data.rating.dislikes) if (thisRating == "Like"){ jQuery("#Comments #"+oid+"_likeLinks a.dislike").removeClass("dimmed").css("opacity","1").each(function(){this.clicked = false;}); } else { jQuery("#Comments #"+oid+"_likeLinks a.like").removeClass("dimmed").css("opacity","1").each(function(){this.clicked = false;}); } } }); } } function reportComment(e){ e.preventDefault(); e.stopPropagation(); var oid = jQuery(this).attr("rel"); var elem = jQuery("#"+oid+"_report"); elem.click(function(e){e.stopPropagation();}) if (!elem.is(":visible")){ if (elem.is(":empty")){ var params = { // oid: oid, ajaxComponent: componentId, requestAction: "reportComment", cb: commentCB() }; jQuery.ajax({ url: commentComponentUrl, // componentURL, data: (params), dataType: 'json', success: function (data) { console.log(data) if(data.reportForm.html){ elem.html(data.reportForm.html); UIkit.modal(jQuery('#'+data.reportForm.oid+'_report_modal')) .show(); } } }); } else { UIkit.modal(jQuery('#'+oid+'_report_modal')).show(); } } } function submitReport(e){ var params = jQuery(e).closest("form").serialize()+"&ajaxComponent="+componentId+"&requestAction=reportComment"; jQuery.ajax({ url: commentComponentUrl, // componentURL, type: "POST", data: (params), dataType: 'json', success: function (data) { console.log(data) if(data.reportResult.html){ UIkit.modal(jQuery('#'+data.reportResult.oid+'_report_modal')) .hide(); jQuery('#'+data.reportResult.oid+'_report_result') .html(data.reportResult.html) UIkit.modal(jQuery('#'+data.reportResult.oid+'_report_success_modal')) .show(); setTimeout(function(){ UIkit.modal(jQuery('#'+data.reportResult.oid+'_report_success_modal')) .hide(); }, 2500); } } }) } (function($) { var subscribed=false; function showFollowPanel(e){ e.preventDefault(); myPanel = $(this).parent().next(".togglePanel"); myPanel.fadeIn("fast"); } function doSubscribe(obj){ var myPanel = obj.parent().next(".togglePanel"); myPanel.fadeIn("fast"); if (!subscribed){ var myLink = obj.parent(); var myLoader = myPanel.children(".loading"); var myUpdater = myPanel.children(".ajaxUpdater"); var params = { object: myPanel.attr("data-toolsoid"), macro: myPanel.attr("data-toolsajaxmacro"), url: window.location }; $.ajax({ url: "/gyrobase/Macros/ToolsAjax", data: (params), type: "POST", dataType: "html", success: function (data) { subscribed = true; if (myUpdater){ myUpdater.html(data); myLoader.fadeOut("fast", function(){ myUpdater.fadeIn("fast", function(){ setTimeout(function(){ myPanel.fadeOut("fast"); }, 3000); }); }); } else { myPanel.fadeOut("fast"); } } }); } } function activateSubscribe(e){ e.preventDefault(); var myObj = $(this); var isAuthenticated = Foundation.SessionManager.sharedSessionManager().isAuthenticated(); if (!isAuthenticated){ new Foundation.Login.Dialog({ "feelingShy": false, "callback": function(){doSubscribe(myObj);} }); return false; } else { // Proceed doSubscribe(myObj); } } function deleteComment(e){ e.preventDefault(); var thisComment = $(this); var params = { macro: "deleteComment", comment: thisComment.attr("data-comment") }; $.ajax({ url: "/gyrobase/Macros/ToolsAjax", data: (params), type: "POST", dataType: "html", success: function (data) { thisComment.closest(".brandNewComment").fadeOut("fast", function(){ $(this).remove(); var myTotal = parseInt(jQuery("#comments_total").text(), 10); myTotal--; updateCommentTotals(false,myTotal); }); } }); } function editComment(e){ e.preventDefault(); var thisComment = $(this); var commentCont = thisComment.closest(".brandNewComment").find(".description"); var commentTemp = thisComment.closest(".brandNewComment").find(".commentTemp"); var commentText = commentTemp.html(); var toolbar = thisComment.closest(".brandNewComment").find(".commentToolbar"); commentCont.next(".commentEditCont").remove(); commentCont.after(''); toolbar.fadeOut("fast"); commentCont.fadeOut("fast", function(){ commentCont.next(".commentEditCont").fadeIn("fast", function(){ $(".brandNewComment textarea.expandableBox").autoBoxResize(); $(".brandNewComment textarea.expandableBox").focus(); }); }); } function editCommentSave(e){ e.preventDefault(); var thisComment = $(this); var editCont = thisComment.closest(".commentEditCont"); var commentTemp = thisComment.closest(".brandNewComment").find(".commentTemp"); var newText = thisComment.prevAll("textarea").val(); var toolbar = thisComment.closest(".brandNewComment").find(".commentToolbar"); var params = { macro: "editComment", comment: thisComment.attr("data-comment"), commentText: newText }; $.ajax({ url: "/gyrobase/Macros/ToolsAjax", data: (params), type: "POST", success: function (data) { if (data.error){ $(".editErrorDisplay").html("
- "+data.error+"
").fadeIn("fast"); } else if (data.result){ editCont.fadeOut("fast", function(){ $(".editErrorDisplay").hide().html("
"); editCont.prev(".description").html($.trim(data.result)); commentTemp.html(newText); editCont.prev(".description").fadeIn("fast"); toolbar.fadeIn("fast"); }); } } }); } function editCommentCancel(e){ e.preventDefault(); var editCont = $(this).closest(".commentEditCont"); var toolbar = $(this).closest(".brandNewComment").find(".commentToolbar"); editCont.fadeOut("fast", function(){ $(".editErrorDisplay").hide().html("
"); editCont.prev(".description").fadeIn("fast"); toolbar.fadeIn("fast"); editCont.remove(); }); } $("#Comments").on('click', ".bottomOptionBar a#doSubscribe", activateSubscribe); $("#Comments").on('click', ".bottomOptionBar a.togglePanelClose", function(){$(this).parent().fadeOut("fast"); return false;}); $("#Comments").on('click', ".brandNewComment a.commentDeleteLink", deleteComment); $("#Comments").on('click', ".brandNewComment a.commentEditLink", editComment); $("#Comments").on('click', ".brandNewComment a.doneEditLink", editCommentSave); $("#Comments").on('click', ".brandNewComment a.cancelEditLink", editCommentCancel); })(jQuery); jQuery(function($){ // var commentWordLimit = 0 if(commentWordLimit > 0){ jQuery('textarea[name=comment]').on('input propertychange',function(){ var originalText = jQuery(this).prop('value') var wordList = originalText.trim().split(/\s+/) var wordsUsed = wordList[0] == "" ? 0 : wordList.length var wordsLeft = Math.max(0,commentWordLimit - wordsUsed) jQuery('span.descriptionWordsLeft').text(wordsLeft+" words left.") jQuery('progress.postCommentTextProgress').val(wordsUsed) if(wordsUsed > commentWordLimit){ // var shortenedMatch = new RegExp("^([^\\s]*\\s+){" + (commentWordLimit-1) + "}[^\\s]{1,10}","gi") var shortenedText = shortenedMatch.exec(originalText)[0] jQuery(this).prop('value', shortenedText) } if(wordsLeft < commentWordLimit){ jQuery('span.descriptionWordsLeft').text(wordsLeft+" words left.") jQuery('progress.postCommentTextProgress').val(wordsUsed) }else{ jQuery('span.descriptionWordsLeft').text('') jQuery('progress.postCommentTextProgress').val(0) } }) } $("#Comments").on('click', '#showMoreComments,#showAllComments', getMoreComments); $("#Comments #sortSelect").change(getMoreComments); getMoreComments(); // new Foundation.PostCommentComponent(componentId); // var nc = Foundation.NotificationCenter.sharedNotificationCenter(); nc.observe("comment:added", function (e) { var comment = e.data; getComment(comment.get("oid"), comment.get("commentLimit")); // clear rating if (jQuery(".commentFormRating").length != 0){ Foundation.Rating['[data-component-id="Comments"] .commentFormRating'] .clearRating() } }); var subscribeCheckBox = $("#Comments_commentSubscribe"); subscribeCheckBox.prop("checked", getCookie("subscribeToThread") === "true" ? true : false); subscribeCheckBox.change(function (e) { var subscribeToThread = $(this).prop("checked"); setCookie("subscribeToThread", subscribeToThread ? "true" : "false", 30); }); var shareFacebookBox = $("#Comments_postCommentToFacebook"); shareFacebookBox.prop("checked", getCookie("shareOnFacebook") === "true" ? true : false); shareFacebookBox.change(function (e) { var shareOnFacebook = $(this).prop("checked"); setCookie("shareOnFacebook", shareOnFacebook ? "true" : "false", 30); }); $("#Comments").on('click', 'a.likeLink', doLikeComment); $("#Comments").on('click', 'a.reportCommentLink', reportComment); });
Past Events
- St. Practice Day on River Street: Charity Bar Crawl
Sat., March 8, 2 & 10 p.m. 2014
- Dine to Find a Cure for Cancer
Wed., Oct. 30, 11 a.m.-11 p.m. 2013