09. juli 2009 - 14:45
Der er
6 kommentarer
Item is undefined, hvorfor?
Har en carousel, men får item is undefined på denne linie: return <xsl:text><![CDATA['<img onclick="document.location=\''+item.href+'\'" src="' + item.url + '" alt="' + item.title + '" title="' + item.title + '" onerror="src=\''+item.onerror+'\'" />';]]></xsl:text> -------------------------- Hele scriptet ser sådanne ud: <script type="text/javascript"> var iIndex = 0; var aTemp = [ <xsl:text><![CDATA[<!--@LoopStart(Custom:Product.Thumbnails)-->]]></xsl:text> {index: iIndex++, url: "/admin/public/getImage.aspx?Image=<xsl:text><![CDATA[<!--@Image-->]]></xsl:text><xsl:text><![CDATA[&]]></xsl:text>Format=jpg<xsl:text><![CDATA[&]]></xsl:text><xsl:text><![CDATA[Width=97", title: "", href: "java script:void(saetBillede(\\']]></xsl:text><xsl:text><![CDATA[<!--@Image-->]]></xsl:text><xsl:text><![CDATA[\\'));", onerror: "/admin/public/getImage.aspx?Image=]]></xsl:text><xsl:text><![CDATA[<!--@Ecom:Product.ImageLarge.Default.Clean-->]]></xsl:text><xsl:text><![CDATA[&]]></xsl:text>Height=180"}, <xsl:text><![CDATA[<!--@LoopEnd(Custom:Product.Thumbnails)-->]]></xsl:text> {url:""} ]; <xsl:text><![CDATA[var mycarousel_itemList = []; for(var i=0; i<aTemp.length-1; i++) { mycarousel_itemList[i] = aTemp[i]; } ]]></xsl:text> function mycarousel_itemVisibleInCallback(carousel, item, i, state, evt){ // The index() method calculates the index from a // given index who is out of the actual item range. var idx = carousel.index(i, mycarousel_itemList.length); var oElement = carousel.add(i, mycarousel_getItemHTML(mycarousel_itemList[idx - 1])); oElement.hover(function() { $(this).addClass('hover'); }, function() { $(this).removeClass('hover'); }) if (typeof mycarousel_itemList[idx - 1].onerror!='undefined') { } }; function mycarousel_itemVisibleOutCallback(carousel, item, i, state, evt) { carousel.remove(i); }; /** * Item html creation helper. */ function mycarousel_getItemHTML(item) { return <xsl:text><![CDATA['<img onclick="document.location=\''+item.href+'\'" src="' + item.url + '" alt="' + item.title + '" title="' + item.title + '" onerror="src=\''+item.onerror+'\'" />';]]></xsl:text> }; jQuery(document).ready(function() { jQuery('#mycarousel').jcarousel({ auto: 2.5, wrap: 'circular', animation: 2900, easing: 'swing', scroll: 1, itemVisibleInCallback: {onBeforeAnimation: mycarousel_itemVisibleInCallback}, itemVisibleOutCallback: {onAfterAnimation: mycarousel_itemVisibleOutCallback}, initCallback: mycarousel_initCallback }); }); function mycarousel_initCallback(carousel) { // Pause autoscrolling if the user moves with the cursor over the clip. carousel.clip.hover(function() { carousel.stopAuto(); }, function() { carousel.startAuto(); }); }; </script>
Annonceindlæg fra Kommando
skal det ikke være window.location? return <xsl:text><![CDATA['<img onclick="window .location=\''+item.href+'\'" src="' + item.url + '" alt="' + item.title + '" title="' + item.title + '" onerror="src=\''+item.onerror+'\'" />';]]></xsl:text> };
Hmm, får stadig samme fejl: item is undefined... Den fatter godt der er 4 billeder, men den udskriver dem bare ikke
ja, det ville være underligt, hvis det var det der gjorde det... får du fejlen for hver gang den kalder funktionen mycarousel_etItemHTML()?
Det skal lige siges at inden jeg omdannede tingene til xslt, virkede det fint, og der så det sådan her ud: <script type="text/javascript"> var iIndex = 0; var aTemp = [ <!--@LoopStart(Custom:Product.Thumbnails)--> {index: iIndex++, url: "/admin/public/getImage.aspx?Image=<!--@Image-->&Format=jpg&Width=97", title: "", href: "java script:void(saetBillede(\\'<!--@Image-->\\'));", onerror: "/admin/public/getImage.aspx?Image=<!--@Ecom:Product.ImageLarge.Default.Clean-->&Height=180"}, <!--@LoopEnd(Custom:Product.Thumbnails)--> {url:""} ]; var mycarousel_itemList = []; for(var i=0; i<aTemp.length-1; i++) { mycarousel_itemList[i] = aTemp[i]; } function mycarousel_itemVisibleInCallback(carousel, item, i, state, evt) { // The index() method calculates the index from a // given index who is out of the actual item range. var idx = carousel.index(i, mycarousel_itemList.length); var oElement = carousel.add(i, mycarousel_getItemHTML(mycarousel_itemList[idx - 1])); oElement.hover(function() { $(this).addClass('hover'); }, function() { $(this).removeClass('hover'); }) if (typeof mycarousel_itemList[idx - 1].onerror!='undefined') { } }; function mycarousel_itemVisibleOutCallback(carousel, item, i, state, evt) { carousel.remove(i); }; /** * Item html creation helper. */ function mycarousel_getItemHTML(item) { return '<img onclick="document.location=\''+item.href+'\'" src="' + item.url + '" alt="' + item.title + '" title="' + item.title + '" onerror="src=\''+item.onerror+'\'" />'; }; jQuery(document).ready(function() { jQuery('#mycarousel').jcarousel({ auto: 2.5, wrap: 'circular', animation: 2900, easing: 'swing', scroll: 1, itemVisibleInCallback: {onBeforeAnimation: mycarousel_itemVisibleInCallback}, itemVisibleOutCallback: {onAfterAnimation: mycarousel_itemVisibleOutCallback}, initCallback: mycarousel_initCallback }); }); function mycarousel_initCallback(carousel) { // Pause autoscrolling if the user moves with the cursor over the clip. carousel.clip.hover(function() { carousel.stopAuto(); }, function() { carousel.startAuto(); }); }; </script>
04. november 2010 - 12:52
#6
fik du det løst?
Vi tilbyder markedets bedste kurser inden for webudvikling