Идем в папку /local/ (если нет, создаем ее) в ней создаем папку ajax в которой создаем файл list_compare.php внутри которого размещаем код:
require_once($_SERVER['DOCUMENT_ROOT']. "/bitrix/modules/main/include/prolog_before.php");
$APPLICATION->IncludeComponent(
"bitrix:catalog.compare.list",
"",
array(
"IBLOCK_TYPE" => "catalog", //Сюда ваш тип инфоблока каталога
"IBLOCK_ID" => "1", //Сюда ваш ID инфоблока каталога
"AJAX_MODE" => "N",
"AJAX_OPTION_JUMP" => "N",
"AJAX_OPTION_STYLE" => "Y",
"AJAX_OPTION_HISTORY" => "N",
"DETAIL_URL" => "#SECTION_CODE#",
"COMPARE_URL" => "/catalog/compare.php",
"NAME" => "CATALOG_COMPARE_LIST",
"AJAX_OPTION_ADDITIONAL" => ""
),
false
);
JS функция в скрипте
function compare_tov(id)
{
var chek = document.getElementById('compareid_'+id);
if (chek.checked)
{
//Добавить
var AddedGoodId = id;
$.get("/local/ajax/list_compare.php",
{
action: "ADD_TO_COMPARE_LIST", id: AddedGoodId},
function(data) {
$("#compare_list_count").html(data);
}
);
}
else
{
//Удалить
var AddedGoodId = id;
$.get("/local/ajax/list_compare.php",
{
action: "DELETE_FROM_COMPARE_LIST", id: AddedGoodId},
function(data) {
$("#compare_list_count").html(data);
}
);
}
}
Вставляем в шаблон компонента следующий код
<?
$iblockid = $arElement['IBLOCK_ID'];
$id=$arElement['ID'];
if(isset($_SESSION["CATALOG_COMPARE_LIST"][$iblockid]["ITEMS"][$id]))
{
$checked='checked';
}
else
{
$checked='';
}
?>
<input <?=$checked;?> type="checkbox" id="compareid_<?=$arElement['ID'];?>" onchange="compare_tov(<?=$arElement['ID'];?>);">