Как использовать jQuery плагины в элементах Polymer?

К примеру хочу создать элемент. Этот элемент - слайдер, использующий jquery-плагин Swiper.

Так выглядит элемент.
<link rel="import" href="../bower_components/polymer/polymer.html">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="../bower_components/swiper/dist/idangerous.swiper.min.js"></script>
<polymer-element name="my-element">
	<template>
		<link rel="stylesheet" href="../bower_components/swiper/dist/idangerous.swiper.css">
		<div class="swiper-container">
  			<div class="swiper-wrapper">
      			<!--First Slide-->
      			<div class="swiper-slide"> 
      			  <!-- Any HTML content of the first slide goes here -->
      			  <h1>First Slide</h1>
      			</div>
      
      			<!--Second Slide-->
      			<div class="swiper-slide">
      			  <!-- Any HTML content of the second slide goes here -->
      			  <h1>Second Slide</h1>
      			</div>
      
      			<!--Third Slide-->
      			<div class="swiper-slide"> 
       			 <!-- Any HTML content of the third slide goes here -->
      			  <h1>Third Slide</h1>
      			</div>
      			<!--Etc..-->
  			</div>
		</div>

	</template>

	<script>
		Polymer('my-element',{});
	</script>

</polymer-element>


Для запуска слайдера необходимо запустить скрипт.
$(function(){
  var mySwiper = $('.swiper-container').swiper({
    //Your options here:
    mode:'horizontal',
    loop: true
    //etc..
  });
})


При попытке просто вставить этот скрипт, ничего не срабатывает. А если переписываю под Polymer, то выдает ошибку, что метода "swiper" не существует.
Я так понимаю проблема в Shadow Dom. Но что-то ничего не лезет в голову умного для решения проблемы.
  • Вопрос задан
  • 2725 просмотров
Пригласить эксперта
Ответы на вопрос 1
vixwork
@vixwork
programmer
Polymer('my-elemen', {
  ready: function () {
    this.swiperContainer = this.shadowRoot.querySelector('swiper-container');
  },
  domReady: function () {
    $(this.swiperContainer).swiper({
      mode:'horizontal',
      loop: true
    });
  }
}
Ответ написан
Ваш ответ на вопрос

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

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