Показать сообщение отдельно
  #6 (permalink)  
Старый 31.01.2013, 17:05
Интересующийся
Отправить личное сообщение для katjuha6 Посмотреть профиль Найти все сообщения от katjuha6
 
Регистрация: 31.01.2013
Сообщений: 12

не работает. смотрите
http://test.katalliana.org/ru/intern...la-stulya.html
это страница со сравнением (чтобы Вам долго не ковыряться по всему сайту). когда добавляешь товар в сравнение - под списком товаров и перед модулем "Последние поступления" (внизу странички) появляется модуль сравнения. в данном случае окошко отображается в левом верхнем углу (текст - 123456), товары в сравнение не добавляются, модуль не появляется.
вот на этом сайте можете глянуть как выглядит сравнение http://testshop.katalliana.org/ru/in...la-stulya.html
на всякий случай прикрепляю полный код скрипта
function removeByElement(arrayName,arrayElement) {
    for(var i=0; i<arrayName.length;i++)      { 
        if(arrayName[i]==arrayElement) arrayName.splice(i,1); 
    } 
}
function CompareProduct(el, type_id) {
	var Product_ID = el.name;
	Product_ID = Product_ID.replace("compare_","");
	//alert("ДО: productID="+Product_ID+" ProductsInCart.length="+ProductsInCart.length);
	if (el.checked && CompareTypeID != -1 && type_id!=CompareTypeID) {
		alert("Hельзя сравнивать товары разного типа");
		return false;
	}
	else if (el.checked && ProductsInCart.length>=MaxProductToCompare) {
		alert("Нельзя сравнивать более " + MaxProductToCompare + " продуктов одновременно");
		return false;
	}
	else if (el.checked) {
		CompareTypeID = type_id;
		AddCompare(Product_ID);
	}
	else RemoveCompare(Product_ID);	
	//alert("ПОСЛЕ: productID="+Product_ID+" ProductsInCart.length="+ProductsInCart.length);
	return true;

}
function AddCompare(product) {
  ProductsInCart.push(product);вы
  var frm= $("frmProductCompare");
  frm.product_id.value=product;
  frm.func.value="comparisonAdd";
  //frm.page.value = "shop.comparison_short";
  handleUpdateCompare(frm);
 
  $( "#dialog" ).dialog();
}

function RemoveCompare(product) {
	//alert(product);
	removeByElement(ProductsInCart,product);
	if (ProductsInCart.length<=0) CompareTypeID=-1;
	//alert(ProductsInCart.length);
	//alert(ProductsInCart[0]);
	var frm= $("frmProductCompare");
	frm.product_id.value=product;
	frm.func.value="comparisonDelete";
	handleUpdateCompare(frm);
}
	//для удаления из сравнения на странице сравнения
function RemoveComparePage(product) {
	//alert(product);
	removeByElement(ProductsInCart,product);
	var page;
	if (ProductsInCart.length<=0){ CompareTypeID=-1; page = "shop.browse";}
	else page = "shop.compare";
	//alert(ProductsInCart.length);
	var frm= $("frmProductCompare");
	frm.product_id.value=product;
	frm.func.value="comparisonDelete";
	frm.page.value=page;
	frm.compare_type.value = CompareTypeID;
	frm.submit();
}
function ClearCompare() {
	var el;
	for(var i=0;i<ProductsInCart.length;i++){ 
		//alert(ProductsInCart[i]);
		el= $("compare_cart_"+ProductsInCart[i]);
		if (el && el.checked) el.checked=false;
	}
	ProductsInCart=[];
	//alert(ProductsInCart.length);
	CompareTypeID=-1;
	var frm= $("frmProductCompare");
	frm.func.value="comparisonClear";
	handleUpdateCompare(frm);
}
//Очистка на странице сравнения
function ClearComparePage() {
	var el;
	for(var i=0;i<ProductsInCart.length;i++){ 
		//alert(ProductsInCart[i]);
		el= $("compare_cart_"+ProductsInCart[i]);
		if (el && el.checked) el.checked=false;
	}
	ProductsInCart=[];
	//alert(ProductsInCart.length);
	CompareTypeID=-1;
	var frm= $("frmProductCompare");
	frm.func.value="comparisonClear";
	frm.page.value="shop.browse";
	frm.submit();
}
/*function handleUpdateCompare( frm ) {
	var callback = function(responseText) {
		updateComparison()
		//$("Compare_Thumb_Container").innerHTML=responseText;
		ToggleCompareCheck(false);
	}	
	var opt = {
		method: "post",
		data: frm,
		onComplete: callback,
		evalScripts: true
	}		
	ToggleCompareCheck(true);
	new Ajax(frm.action, opt).request();
}*/
//function updateComparison() {
/*
function handleUpdateCompare( frm ) {
alert(frm.func.value);
	var callbackCart = function(responseText) {
		carts = $$( '.vmComparisonModule' );
		if( carts ) {
			try { 
				for (var i=0; i<carts.length; i++){
					carts[i].innerHTML = responseText;
					color = carts[i].getStyle( 'color' );
					bgcolor = carts[i].getStyle( 'background-color' );
					if( bgcolor == 'transparent' ) {
						// If the current element has no background color, it is transparent.
						// We can't make a highlight without knowing about the real background color,
						// so let's loop up to the next parent that has a BG Color
						parent = carts[i].getParent();
						while( parent && bgcolor == 'transparent' ) {
							bgcolor = parent.getStyle( 'background-color' );
							parent = parent.getParent();
						}
					}
					var fxc = new Fx.Style(carts[i], 'color', {duration: 1000});
					var fxbgc = new Fx.Style(carts[i], 'background-color', {duration: 1000});

					fxc.start( '#222', color );							
					fxbgc.start( '#fff68f', bgcolor );
					//if( parent ) {
					//	setTimeout( "carts[" + i + "].setStyle( 'background-color', 'transparent' )", 1000 );
					//}
				}
			} catch(e) {}
		}
		ToggleCompareCheck(false);
	}
	//option = { method: 'POST', onComplete: callbackCart }
	var frm1 = { only_page:1,
		page: frm.page.value,
		category_id: frm.category_id.value,
		product_id: frm.product_id.value,
		func: "comparisonAdd",
		compare_type: frm.compare_type.value,
		Itemid: frm.Itemid.value,
		option:	frm.option.value
	}
	var opt = {
		method: "post",
		data: frm1,
		//data: { only_page:1, option: "com_virtuemart", page: frm.page.value },
		onComplete: callbackCart,
		evalScripts: true
		//?page=shop.comparison_short
	}
	ToggleCompareCheck(true);
	new Ajax('http://joom15/index2.php?page=shop.comparison_short', opt).request();
}	
*/
function handleUpdateCompare( frm ) {			
	var callback = function(responseText) {
		updateComparison()
		//$("Compare_Thumb_Container").innerHTML=responseText;
		ToggleCompareCheck(false);
	}
				
	var opt = {
		method: "post",
		data: frm,
		onComplete: callback,
		evalScripts: true
	}
				
	ToggleCompareCheck(true);
	new Ajax(frm.action, opt).request();
}

function updateComparison() {
	var callbackCart = function(responseText) {
		carts = $$( '.vmComparisonModule' );
		if( carts ) {
			try { 
				for (var i=0; i<carts.length; i++){
					carts[i].innerHTML = responseText;
					color = carts[i].getStyle( 'color' );
					bgcolor = carts[i].getStyle( 'background-color' );
					if( bgcolor == 'transparent' ) {
						// If the current element has no background color, it is transparent.
						// We can't make a highlight without knowing about the real background color,
						// so let's loop up to the next parent that has a BG Color
						parent = carts[i].getParent();
						while( parent && bgcolor == 'transparent' ) {
							bgcolor = parent.getStyle( 'background-color' );
							parent = parent.getParent();
						}
					}
					var fxc = new Fx.Style(carts[i], 'color', {duration: 1000});
					var fxbgc = new Fx.Style(carts[i], 'background-color', {duration: 1000});

					fxc.start( '#222', color );							
					fxbgc.start( '#fff68f', bgcolor );
					if( parent ) {
						setTimeout( "carts[" + i + "].setStyle( 'background-color', 'transparent' )", 1000 );
					}
				}
			} catch(e) {}
		}
	}
	option = { method: 'POST', onComplete: callbackCart }
	new Ajax('index2.php?only_page=1&page=shop.comparison_short&option=com_virtuemart', option).request();
}
		
function ToggleCompareCheck(disabled) {
	var a = $$(".compare_checkbox");
	for (i=0; i<a.length; i++) a[i].disabled=disabled;
}
function RemoveCompareCheck(product) {
	var el= $("compare_cart_"+product);
	if (el && el.checked) el.checked=false;
	RemoveCompare(product+'');
}	

function handleGoToCompare() {
	if (!ProductsInCart || ProductsInCart.length<2) {
		alert("You must select 2 or more products to compare!");
		return;
	}
	var frm= $("frmProductCompare");
	frm.page.value="shop.compare";
	frm.compare_type.value = CompareTypeID;
	frm.func.value="";
	frm.submit();
}
function GoToCatalog() {
	var frm= $("frmProductCompare");
	if(frm.category_id.value>0)
	 frm.page.value="shop.browse";
	else frm.page.value="";
	frm.func.value="";
	frm.submit();
}
Ответить с цитированием