Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

catalog.element

00 голосов
8
в компоненте catalog есть шаблон для вывода catalog.element.  есть там строчки для вывода картинок
<?foreach($arResult["MORE_PHOTO"] as $PHOTO):?>
<img border="0" src="<?=$PHOTO["SRC"]?>" width="<?=$PHOTO["WIDTH"]?>" height="<?=$PHOTO["HEIGHT"]?>" alt="<?=$arResult["NAME"]?>" title="<?=$arResult["NAME"]?>" />
<?endforeach?>

хочу применить к этому коду слайдер на jquery. цепляя в headere темплейта скрипты и cssку ничего не происходит, вставляя скрипты  уже в шаблоне catalog.element работает, но работает тока в mozzile и explorere , в опере, хроме, и safari не работает, подскажите как можно решить енту проблему.
спросил 21 Июнь, 13 от Godvolf (240 баллов)

8 Ответы

00 голосов
По своему опыту знаю, что jquery-скрипты и стили достаточно грузить в шапке шаблона сайта, если нет ошибок в самих скриптах, то все будет работать.
Главное - все содержимое скрипта обрамляем конструкцией
jQuery(document).ready(function(){
  // содержимое скрипта
}),
ну и также подгрузку стилей в шаблоне желательно раньше скриптов прописывать
Еще может быть с верстка кривая, тут как минимум надо проверить в каком режиме рендерится страница (в режиме соответствия стандартам или нет).
Если дадите больше информации, то можно поконкретнее тему поковырять.. )
ответил 21 Июнь, 13 от Feanor007 (420 баллов)
00 голосов
таким образом работает, но правда только в мазиле и эксплорере, в опере и хроме нет.
Код
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<div class="catalog-element" style="height:330px;">
   <table width="100%" style="height:330px;" border="0" cellspacing="0" cellpadding="0">
      <tr style="height:330px;">
      <?if(is_array($arResult["PREVIEW_PICTURE"]) || is_array($arResult["DETAIL_PICTURE"])):?>
         <td width="220" valign="top" style="height:50px;padding-top:10px;width:220px;">
<span style="color:rgb(151, 198, 20);font:23px Georgia;text-decoration:underline;"><?=$arResult["NAME"]?><br /><br /></span>
            <?if(is_array($arResult["PREVIEW_PICTURE"]) && is_array($arResult["DETAIL_PICTURE"])):?>
               <img border="0" src="<?=$arResult["DETAIL_PICTURE"]["SRC"]?>" width="<?=$arResult["DETAIL_PICTURE"]["WIDTH"]?>" height="<?=$arResult["DETAIL_PICTURE"]["HEIGHT"]?>" alt="<?=$arResult["NAME"]?>" title="<?=$arResult["NAME"]?>" id="image_<?=$arResult["PREVIEW_PICTURE"]["ID"]?>" style="display:block;cursor:pointer;cursor: hand;" OnClick="document.getElementById('image_<?=$arResult["PREVIEW_PICTURE"]["ID"]?>').style.display='none';document.getElementById('image_<?=$arResult["DETAIL_PICTURE"]["ID"]?>').style.display='block'" />
               <img border="0" src="<?=$arResult["DETAIL_PICTURE"]["SRC"]?>" width="<?=$arResult["DETAIL_PICTURE"]["WIDTH"]?>" height="<?=$arResult["DETAIL_PICTURE"]["HEIGHT"]?>" alt="<?=$arResult["NAME"]?>" title="<?=$arResult["NAME"]?>" id="image_<?=$arResult["DETAIL_PICTURE"]["ID"]?>" style="display:none;cursor:pointer; cursor: hand;" OnClick="document.getElementById('image_<?=$arResult["DETAIL_PICTURE"]["ID"]?>').style.display='none';document.getElementById('image_<?=$arResult["PREVIEW_PICTURE"]["ID"]?>').style.display='block'" />
            <?elseif(is_array($arResult["DETAIL_PICTURE"])):?>
               <img border="0" src="<?=$arResult["DETAIL_PICTURE"]["SRC"]?>" width="<?=$arResult["DETAIL_PICTURE"]["WIDTH"]?>" height="<?=$arResult["DETAIL_PICTURE"]["HEIGHT"]?>" alt="<?=$arResult["NAME"]?>" title="<?=$arResult["NAME"]?>" />
            <?elseif(is_array($arResult["PREVIEW_PICTURE"])):?>
               <img border="0" src="<?=$arResult["PREVIEW_PICTURE"]["SRC"]?>" width="<?=$arResult["PREVIEW_PICTURE"]["WIDTH"]?>" height="<?=$arResult["PREVIEW_PICTURE"]["HEIGHT"]?>" alt="<?=$arResult["NAME"]?>" title="<?=$arResult["NAME"]?>" />
            <?endif?>
            <?if(count($arResult["MORE_PHOTO"])>0):?>
               <br /><a href="#more_photo"><?=GetMessage("CATALOG_MORE_PHOTO")?></a>
            <?endif;?>
         
      <?endif;?>
         
         <!--   <?foreach($arResult["DISPLAY_PROPERTIES"] as $pid=>$arProperty):?>
               <?=$arProperty["NAME"]?>:<b>&nbsp;<?
               if(is_array($arProperty["DISPLAY_VALUE"])):
                  echo implode("&nbsp;/&nbsp;", $arProperty["DISPLAY_VALUE"]);
               elseif($pid=="MANUAL"):
                  ?><a href="<?=$arProperty["VALUE"]?>"><?=GetMessage("CATALOG_DOWNLOAD")?></a><?
               else:
                  echo $arProperty["DISPLAY_VALUE"];?>
               <?endif?></b><br />
            <?endforeach?> -->
         </td>
<td valign="top" style="padding-left:25px;text-align:left;" align="left">
   <?if($arResult["DETAIL_TEXT"]):?>
      <br /><?=$arResult["DETAIL_TEXT"]?><br />
   <?elseif($arResult["PREVIEW_TEXT"]):?>
      <br /><?=$arResult["PREVIEW_TEXT"]?><br />
   <?endif;?>
<script type="text/javascript">
/*! jQuery v1.7.1 jquery.com | jquery.org/license */
</script>
<script type="text/javascript">
jQuery(document).ready(function($)
ответил 11 Июль, 13 от Godvolf (240 баллов)
00 голосов
Проверьте пути в шаблоне к файлам скрипта и стилей.
Возможно не оттуда подключаете.
Хром и опера кэшируют жестко, может просто кэш почистить надо и заработает .. )
ответил 15 Окт, 13 от Feanor007 (420 баллов)
00 голосов
Скопировал приведенный код в Notepad++ - показывает лишние "корявые" символы в коде (см.картинку по ссылке).
http://awesomescreenshot.com/0e7dj3e7
В блокноте виндоуском - их (символов) нет, но при удалении понятно что они там.
По таким причинам указанные глюки в разных браузерах часто бывают.
Попробуй их удалить через Notepad++.
ответил 17 Янв, 14 от SleepLess (1,220 баллов)
00 голосов
Или попробуй код уже очищенный:

Код
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<div class="catalog-element" style="height:330px;">
   <table width="100%" style="height:330px;" border="0" cellspacing="0" cellpadding="0">
      <tr style="height:330px;">
      <?if(is_array($arResult["PREVIEW_PICTURE"]) || is_array($arResult["DETAIL_PICTURE"])):?>
         <td width="220" valign="top" style="height:50px;padding-top:10px;width:220px;">
<span style="color:rgb(151, 198, 20);font:23px Georgia;text-decoration:underline;"><?=$arResult["NAME"]?><br /><br /></span>
            <?if(is_array($arResult["PREVIEW_PICTURE"]) && is_array($arResult["DETAIL_PICTURE"])):?>
               <img border="0" src="<?=$arResult["DETAIL_PICTURE"]["SRC"]?>" width="<?=$arResult["DETAIL_PICTURE"]["WIDTH"]?>" height="<?=$arResult["DETAIL_PICTURE"]["HEIGHT"]?>" alt="<?=$arResult["NAME"]?>" title="<?=$arResult["NAME"]?>" id="image_<?=$arResult["PREVIEW_PICTURE"]["ID"]?>" style="display:block;cursor:pointer;cursor: hand;" OnClick="document.getElementById('image_<?=$arResult["PREVIEW_PICTURE"]["ID"]?>').style.display='none';document.getElementById('image_<?=$arResult["DETAIL_PICTURE"]["ID"]?>').style.display='block'" />
               <img border="0" src="<?=$arResult["DETAIL_PICTURE"]["SRC"]?>" width="<?=$arResult["DETAIL_PICTURE"]["WIDTH"]?>" height="<?=$arResult["DETAIL_PICTURE"]["HEIGHT"]?>" alt="<?=$arResult["NAME"]?>" title="<?=$arResult["NAME"]?>" id="image_<?=$arResult["DETAIL_PICTURE"]["ID"]?>" style="display:none;cursor:pointer; cursor: hand;" OnClick="document.getElementById('image_<?=$arResult["DETAIL_PICTURE"]["ID"]?>').style.display='none';document.getElementById('image_<?=$arResult["PREVIEW_PICTURE"]["ID"]?>').style.display='block'" />
            <?elseif(is_array($arResult["DETAIL_PICTURE"])):?>
               <img border="0" src="<?=$arResult["DETAIL_PICTURE"]["SRC"]?>" width="<?=$arResult["DETAIL_PICTURE"]["WIDTH"]?>" height="<?=$arResult["DETAIL_PICTURE"]["HEIGHT"]?>" alt="<?=$arResult["NAME"]?>" title="<?=$arResult["NAME"]?>" />
            <?elseif(is_array($arResult["PREVIEW_PICTURE"])):?>
               <img border="0" src="<?=$arResult["PREVIEW_PICTURE"]["SRC"]?>" width="<?=$arResult["PREVIEW_PICTURE"]["WIDTH"]?>" height="<?=$arResult["PREVIEW_PICTURE"]["HEIGHT"]?>" alt="<?=$arResult["NAME"]?>" title="<?=$arResult["NAME"]?>" />
            <?endif?>
            <?if(count($arResult["MORE_PHOTO"])>0):?>
               <br /><a href="#more_photo"><?=GetMessage("CATALOG_MORE_PHOTO")?></a>
            <?endif;?>
         
      <?endif;?>
         
         <!--   <?foreach($arResult["DISPLAY_PROPERTIES"] as $pid=>$arProperty):?>
               <?=$arProperty["NAME"]?>:<b>&nbsp;<?
               if(is_array($arProperty["DISPLAY_VALUE"])):
                  echo implode("&nbsp;/&nbsp;", $arProperty["DISPLAY_VALUE"]);
               elseif($pid=="MANUAL"):
                  ?><a href="<?=$arProperty["VALUE"]?>"><?=GetMessage("CATALOG_DOWNLOAD")?></a><?
               else:
                  echo $arProperty["DISPLAY_VALUE"];?>
               <?endif?></b><br />
            <?endforeach?> -->
         </td>
<td valign="top" style="padding-left:25px;text-align:left;" align="left">
   <?if($arResult["DETAIL_TEXT"]):?>
      <br /><?=$arResult["DETAIL_TEXT"]?><br />
   <?elseif($arResult["PREVIEW_TEXT"]):?>
      <br /><?=$arResult["PREVIEW_TEXT"]?><br />
   <?endif;?>
<script type="text/javascript">
/*! jQuery v1.7.1 jquery.com | jquery.org/license */
</script>
<script type="text/javascript">
jQuery(document).ready(function($) {
   $.fn.jqGalScroll = function(options){
      return this.each(function(i){
   &nb
ответил 05 Май, 14 от SleepLess (1,220 баллов)
00 голосов
весь контент на index.php, а страничка с catalogom на 1.php , но 1.php я подгружаю в index.php при помощи скрипта 
отдельно 1.php срабатывает как надо , слайдер стал работать, а вот при подгрузке на index.php отказывается.(( 
Код
<script>  
    function showContent(link) {  
  
        var cont = document.getElementById('contentBody');  
        var loading = document.getElementById('loading');  
  
        cont.innerHTML = loading.innerHTML;  
  
        var http = createRequestObject();  
        if( http )   
        {  
            http.open('get', link);  
            http.onreadystatechange = function ()   
            {  
                if(http.readyState == 4)   
                {  
                    cont.innerHTML = http.responseText;  
                }  
            }  
            http.send(null);      
        }  
        else   
        {  
            document.location = link;  
        }  
    }  
  
    // создание ajax объекта  
    function createRequestObject()   
    {  
        try { return new XMLHttpRequest() }  
        catch(e)   
        {  
            try { return new ActiveXObject('Msxml2.XMLHTTP') }  
            catch(e)   
            {  
                try { return new ActiveXObject('Microsoft.XMLHTTP') }  
                catch(e) { return null; }  
            }  
        }  
    }  
</script>  
 
ответил 31 Авг, 14 от Godvolf (240 баллов)
00 голосов
как все заморочено-то..
так как насчет загрузки стилей и скрипта в шаблоне сайта?
пробовали?
ответил 06 Янв, 15 от Amilan (260 баллов)
00 голосов
применил для 1.php и template catalog.element отдельный шаблон, там вписал скрипты, все работает, но работает на 1.php, на index.php уже отказывается, искал примеры без использования jquery, такая же фигня, отдельно работает, при подгрузке на индекс отказывается, разместить компонент каталога на индексе не помогает страница начинает грузится, как быть не знаю уже , все попробывал.
ответил 24 Апр, 15 от Godvolf (240 баллов)

Похожие вопросы

+1 голос
1 ответ
спросил 26 Сен, 16 от loony (540 баллов)
0 голосов
2 ответов
0 голосов
1 ответ
спросил 12 Июнь, 13 от luc (140 баллов)
0 голосов
6 ответов
спросил 12 Май, 13 от Plare666 (720 баллов)