Задать вопрос
@saplas

Как обратиться в элементу jquery?

UPD.
У меня есть модалка (Fancybox) и слайдер (owl)
<div class="popupgallery_block" id="popupgallery_block" >
        <div class="popupgallery js-gallery" >
            <div class="row">
                <div class="col col-md-12">
                    <div class="fancybox-title fancybox-title-inside-wrap"><?=$arResult["NAME"]?></div>
                    <div class="row">
                        <div class="col col-sm-9">
                            <div class="navigations">
                                <div class="around_changeit">
                                    <div class="changeit">
                             			<div class="owl-popupgallery_slider owl-carousel">
											<?if($arResult["DETAIL_PICTURE"]["SRC"]!="" || $arResult["PREVIEW_PICTURE"]["SRC"]!=""):?>
								                <div class="slider__bestitem">
								                    <img src="<?= $arResult["DETAIL_PICTURE"]["SRC"] ? $arResult["DETAIL_PICTURE"]["SRC"] : $arResult["PREVIEW_PICTURE"]["SRC"]?>" alt="" class="slider__item_img img-fluid">
								                </div> 
											<?endif;?>
											<?if($arResult["PROPERTIES"]["MORE_PHOTO"]["VALUE"]!=""):?>
												<?foreach($arResult["PROPERTIES"]["MORE_PHOTO"]["VALUE"] as $arPhoto):?>
						                            <div class="slider__bestitem">
						                    			<img src="<?=CFile::GetPath($arPhoto);?>" alt="" class="slider__item_img img-fluid">
						                			</div> 
												<?endforeach;?>
											<?endif;?>
                						</div>
                        			</div>
                    			</div>
                    		</div>
                   		</div>
			           	<div class="col col-sm-3 fullright">
			               	<div class="preview">
			                   	<?=$arResult["NAME"]?>
			               	</div>
			            </div>
		            </div>
            		<div class="description"><?=$arResult["DETAIL_TEXT"]?></div>
            	</div>
            </div>
        </div>
    </div>


Что должен делать скрипт:
- подставлять в dots превью слайдов.
На странице много слайдеров, и скрипт считает каждый. соответственно в превью подставляются слайды из других слайдеров на этой же странице.
Как я пытался:
function dots (){
    $(document).ready(function(){
 // 1) ASSIGN EACH 'DOT' A NUMBER
            
     dotcount = 1;
            $('.owl-dot').each(function() {
                
              $(this).addClass( 'dotnumber' + dotcount);
              
              $(this).attr('data-info', dotcount);
             
              dotcount=dotcount+1;
              console.log('complete');
                        });
            
             // 2) ASSIGN EACH 'SLIDE' A NUMBER
            slidecount = 1;
     
            jQuery('.owl-item').not('.cloned').each(function() {
              jQuery(this).addClass( 'slidenumber' + slidecount);
              slidecount=slidecount+1;
            });
            
            // SYNC THE SLIDE NUMBER IMG TO ITS DOT COUNTERPART (E.G SLIDE 1 IMG TO DOT 1 BACKGROUND-IMAGE)
            jQuery('.owl-dot').each(function() {
            
          grab = jQuery(this).data('info');

          slidegrab = jQuery('.slidenumber'+ grab +' img').attr('src');
          console.log(slidegrab);

          jQuery(this).css("background-image", "url("+slidegrab+")");  

      });
       
    });
}
function dots2 (){
    $(document).ready(function(){
 // 1) ASSIGN EACH 'DOT' A NUMBER
            
     dotcount = 1;
            $('.owl-popupgallery_slider .owl-dot').each(function() {
                
              $(this).addClass( 'dotnumber1' + dotcount);
              
              $(this).attr('data-info', dotcount);
             
              dotcount=dotcount+1;
              console.log('complete');
                        });
            
             // 2) ASSIGN EACH 'SLIDE' A NUMBER
            slidecount = 1;
     
            jQuery('.owl-item').not('.cloned').each(function() {
              jQuery(this).addClass( 'slidenumber1' + slidecount);
              slidecount=slidecount+1;
            });
            
            // SYNC THE SLIDE NUMBER IMG TO ITS DOT COUNTERPART (E.G SLIDE 1 IMG TO DOT 1 BACKGROUND-IMAGE)
            jQuery('.owl-dot').each(function() {
            
          grab = jQuery(this).data('info');

          slidegrab = jQuery('.slidenumber1'+ grab +' img').attr('src');
          console.log(slidegrab);

          jQuery(this).css("background-image", "url("+slidegrab+")");  

      });
       
    });
}
    $(document).ready(function() {
 dots2 ('.owl-popupgallery_slider');
        $('#fancybox__gallery').fancybox({    
        helpers : {
        title: {
            titleShow: true,
            type: 'inside',
            position: 'top'
        }
    },

        autoSize : true,
        width: 1140,
        height: 705,


        afterShow: function() {
              dots2 ('.owl-popupgallery_slider');
            $('.owl-popupgallery_slider').owlCarousel({
                items: 1,
                loop: false,
                dots: true,
                nav: true,
                autoplay: false,
                margin:10

            })
         
             }
              // 1) ASSIGN EACH 'DOT' A NUMBER
            
      
            

    });

    });


Соответственно dots для первого слайдера и dots2 для слайдера после открытия модалки. Но это не работает. Все так же считает слайды и точки для всех слайдеров на странице по очереди.
  • Вопрос задан
  • 153 просмотра
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 2
romanko_vn
@romanko_vn
$('.block2');
$('.block2').html(); // возвращает html-содержимое выбранного элемента
$('.block2').text(); // вернет текстовое содержимое
Ответ написан
Комментировать
rockfeeler
@rockfeeler
Фронтендер, дизайнер, верстальщик-перфекционист
$('.block1 .block2')...

Но лучше дать единый класс для всех элементов, к которым идет обращение, если предполагается делать с ними одно и то же действие.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 дек. 2024, в 16:13
50000 руб./за проект
23 дек. 2024, в 15:25
5000 руб./за проект
23 дек. 2024, в 14:47
4500 руб./за проект