var ShoppCartAjaxHandler = function (cart) {
(function($) {
var display = $('#shopp-cart-ajax');
display.empty().hide(); // clear any previous additions
var item = $('<ul></ul>').appendTo(display);
if (cart.Item.thumbnail)
$('<li><img src="'+cart.Item.thumbnail.uri+'" alt="" width="'+cart.Item.thumbnail.width+'" height="'+cart.Item.thumbnail.height+'" /></li>').appendTo(item);
$('<li></li>').html('<strong>'+cart.Item.name+'</strong>').appendTo(item);
if (cart.Item.optionlabel.length > 0)
$('<li></li>').html(cart.Item.optionlabel).appendTo(item);
$('<li></li>').html(asMoney(cart.Item.unitprice)).appendTo(item);
if ($('#shopp-cart-items').length > 0) {
$('#shopp-cart-items').html(cart.Totals.quantity);
$('#shopp-cart-total').html(asMoney(cart.Totals.total));
} else {
$('.widget_shoppcartwidget p.status').html('<a href="'+cart.url+'"><span id="shopp-cart-items">'+cart.Totals.quantity+'</span> <strong>Items</strong> — <strong>Total</strong> <span id="shopp-cart-total">'+asMoney(cart.Totals.total)+'</span></a>');
}
display.slideDown();
})(jQuery)
}
har även denna kod för att inte visa en bild som lades vid varukorgen när man la till en produkt. Så det borde vara detta som ersätter ovanstående anrop om jag tolkar det hela rätt?
var ShoppCartAjaxHandler = function (cart) {
(function($) {
$('#shopp-sidecart-items').html(cart.Totals.quantity);
$('#shopp-sidecart-total').html(asMoney(cart.Totals.total));
})(jQuery)
}
För att se om det var fel på ovanstående kod klistra jag in all kod från: http://docs.jquery.com/UI/Effects/Transfer
i en egen .php och prövade och då fungerade funktionen.
men när jag prövade att baka in den fungerande koden i mitt tema så slutade det att fungera.
jQuery is not defined
[Stanna vid fel]
..."?0:a(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,(b.con...
jquery-ui.min.js (rad 9)
$ is not a function
[Stanna vid fel]
$(document).ready(function() {
ge det mig i firebug.
sen så behöver du ju inte köra:
var ShoppCartAjaxHandler = function (cart) {
(function($) { })(jQuery)
}
på det sättet, för vad jag ser så har du bara jquery som är på $ och om du nu skulle ha ett annat biblotek så lägg all jquery kod runt metoderna istället för att ha en anonym metod som körs inne i en annan anonymetod om och om igen.
När jag klickar på knappen så åker "rutan" upp till .topCartHolder men den hamnar helt ocentrerat mot elementet. jag har lagt en ram runt .topCartHolder för att visa vart den ligger, borde inte det bli som exemplet på jquery där den landar snyggt runt mottagande element...?
om du kolla var ShoppCartAjaxHandler körs så ser du att det är på en ajax som är success, om inte så få du posta vad du använder dig av $.post, $.get. Jag hoppas du kör på $.ajax om inte så byt ut det.
det är nog inte .topCartHolder som är problemet utan köpknappens positonen, för elementet skapas ovanför knappen.
Jag är inte så jätte sugen på att debugar din javascripts kod, eller css kod om du kan ta bort css + html + js som kan återskapa samma beteende så bli det lättare.
men du kan ju prova att lägga en margin-top på .ui-effects-transfer och sätt den.
$(document).ready(function() {}) eller $(function() {}) är DOM-ready metoden vilket säger kör skriptet inne i function när vi kan läsa av DOM:en med javascript.
är i mina ögon ett dåligt mönster, metoden fungera ju inte utan jquery och antingen har du $ redan satt som jQuery eller så har metoden sats inne i en anyonm metod med $ refererat till window.jQuery redan.
Jag förstå inte vad du försöker byta ut när du vill byta ut success mot en dom-ready metod... det är två helt olika saker, men spontant så känns det rätt så klumpig kod. vad är d, c b och e för variabler? har du cart.js som inte är packad så man kan se vad den gör?
Du har exempelvis laddad in två olika jquery bibliotek.