我遇到了JQuery滑块“Swiper”(这里的API - http://www.idangero.us/sliders/swiper/api.php)的问题。 当我加载页面时,我需要滚动Swiper到一些“幻灯片”。 =>我使用函数“mySwiper.swipeTo”来滚动Swiper。这在函数“onSlideClick”中运行良好,但是当我为“onFirstInit”或“onInit”或“onSwiperCreated”添加类似的代码时,没有任何工作(只有错误)。看起来像Swiper不知道什么是“mySwiper”=>使用像“mySwiper.slides.length”这样的代码会导致错误并且Swiper无法正常工作。
代理示例Swiper:
<script type="text/javascript">
window.onload = function() {
var mySwiper = new Swiper('.swiper-container',{
mode:'vertical',
slidesPerView: 5,
grabCursor: true,
loop: false,
onFirstInit: function() {
zmena_obsahu_load();
},
onSlideClick: function() {
zmena_obsahu_klik();
}
});
var zmena_obsahu_load = function() {
var index_lo = $(".menu_aktivni_trida").attr("data-id");
var pocet_slidu = mySwiper.slides.length;
if( (index_lo-2) <= 0 ){
mySwiper.swipeTo((index_lo), '500', false);
}
else{
mySwiper.swipeTo((index_lo-2), '500', false);
}
};
var zmena_obsahu_klik = function() {
var index_slidu = $(mySwiper.clickedSlide).attr("data-id");
var index_slidu2 = mySwiper.clickedSlideIndex;
$(".obsah_posuv").hide();
$("#posuv_"+index_slidu).show();
$(".swiper-slide").removeClass("menu_aktivni_trida");
$(mySwiper.clickedSlide).addClass("menu_aktivni_trida");
var pocet_slidu = mySwiper.slides.length;
if( (index_slidu2-2) <= 0 ){
mySwiper.swipeTo((index_slidu2), '500', false);
}
else{
mySwiper.swipeTo((index_slidu2-2), '500', false);
}
};
$('.posuv_menu_h').on('click', function(e){
e.preventDefault()
mySwiper.swipePrev()
})
$('.posuv_menu_d').on('click', function(e){
e.preventDefault()
mySwiper.swipeNext()
})
}
</script>
这段代码写信给我:“TypeError:zmena_obsahu_load不是函数”但是“zmena_obsahu_klik”没问题。
我的功能“zmena_obsahu_klik”正常工作=&gt;忽略这个功能没有问题,为此而不是写我用它。
抱歉我的英文。
答案 0 :(得分:0)
我已经解决了这个问题。 =&GT; &#34; Swiper Hash Navigation&#34; (idangero.us/sliders/swiper/plugins/hashnav.php#slide3)
不是理想的解决方案,但有效,我重写了这个脚本的代码,在url =&gt;上没有丑陋的哈希值
行var hash = document.location.hash.replace('#', '');
更改为var hash = document.getElementById("akt_rok").textContent;
并跨越id&#34; akt_roke&#34;有&#34;显示:无&#34; =&GT;它在url中没有哈希值。