但是,在此之前我已經提出了這個問題,因爲它適用於使用jQuery Mobile時嘗試加載到DOM中的任何JavaScript。爲了讓swiper能夠正確加載jQuery Mobile以及我應該使用哪個頁面事件,我該按照哪種順序準確放置javascript文件?
我有三個頁面使用jQuery Mobile 1.4.0 RC1構建。 index.html只是一個頁面模板,我將swiper添加到第2頁,swiper和easytabs添加到第3頁。您可以在這裏看到它們:http://builtformobile.com/demos/jquerymobile/swiper1/index.html
我試過將jQuery和jQuery Mobile JavaScript文件放在幾個不同的方式,在頭部,底部,至於idangero.us的額外javacript Swiper和Jango Steve在數據角色頁面外部和內部的Easytabs.js。
根據我在哪裏放置javascript for easytabs和swiper,在DOM內部或外部,使用pagecreate或pageinit,當加載或刷新頁面時,我仍然會得到奇怪的結果。我要麼必須刷新頁面才能使javascript工作,要麼我看到其他頁面的內容加載到不應加載它的頁面上。
我的問題是: 我在哪裏放置javascript? 加載jQuery Mobile之前還是之後? 我在哪裏放置javascript文件,哪些頁面事件對我的頁面是正確的? 在進入另一個頁面之前,我是否使用頁面事件來顯示內容和另一個頁面事件以停止該內容?
非常感謝您的時間。
<div data-role="header">
<h1>three</h1>
</div><!-- /header -->
<div data-role="navbar" class="navbar">
<ul>
<li><a href="index.html">Index</a></li>
<li><a href="page-two.html">Page 2</a></li>
<li><a href="page-three.html">Page 3</a></li>
</ul>
</div>
<div data-role="content">
<a class="arrow-left" href="#"></a>
<a class="arrow-right" href="#"></a>
<div class="swiper-container">
<div class="swiper-wrapper">
<div class="swiper-slide"> <img src="img/slider1-1.png"> </div>
<div class="swiper-slide"> <img src="img/slider1-2.png"> </div>
<div class="swiper-slide">
<div class="content-slide">
<p class="title">Slide with HTML</p>
<p>You can put any HTML inside of slide with any layout, not only images, even another Swiper!</p>
</div>
</div>
</div>
</div>
<div class="pagination"></div>
<div id="tab-container" class="tab-container">
<ul class="etabs">
<li class="tab"><a href="#tab1">Tab 1</a></li>
<li class="tab"><a href="#tab2">Tab 2</a></li>
<li class="tab"><a href="#tab3">Tab 3</a></li>
</ul>
<div class="panel-container">
<div id="tab1">
content 3
</div>
<div id="tab2">
content 2
</div>
<div id="tab3">
content 1
</div>
</div>
</div>
</div><!-- /content -->
<div data-role="footer">
<h4>Page Footer</h4>
</div><!-- /footer -->
<script src="js/idangerous.swiper-2.1.min.js"></script>
<script>
$(function(){
var mySwiper = $('.swiper-container').swiper({
pagination: '.pagination',
loop:true,
grabCursor: true,
paginationClickable: true
})
})
$('.arrow-left').on('click', function(e){
e.preventDefault()
mySwiper.swipePrev()
})
$('.arrow-right').on('click', function(e){
e.preventDefault()
mySwiper.swipeNext()
})
</script>
<script src="js/jquery.easytabs.min.js"></script>
<script>
$(function() {
$('#tab-container').easytabs();
});
</script>
</div>
我按照你的建議做了。我添加文件的方式如下所示:jquery,jqm和config。我的配置現在包含easytabs和swiper js內容。我在我的配置上使用了pageshow。我仍然需要重新加載swiper.js才能工作。我相信這是我將swiper添加到頁面展示的方式。 easytabs.js工作正常,但我還沒有將其添加到其他網頁...你或你可以建議一個正確的方法來添加功能? –
$(文件)。在( 「pageshow」, 「#product」,函數(){ \t \t $(函數(){ \t \t變種mySwiper = $( '刷卡容器')。刷卡({ \t \t //你選擇這裏: \t \t模式: '橫向', \t \t循環:真正 \t \t //等。 \t \t}); \t \t}) \t \t $( '左箭頭 ')。在(' 點擊',功能(E){ \t \t \t e.preventDefault() \t \t \t mySwiper.swipePrev() \t \t}) \t \t $( '.arrow右 ')。在(' 點擊',函數(E){ \t \t \t e.preventDefault() \t \t \t mySwiper.swipeNext() \t \t}) \t \t $('#tab-container')。easytabs(); }); –
我猜你的sw is不工作,因爲你啓動了'pageshow'上的插件(爲什麼不'pagebeforeshow'?),插件試圖綁定到DOM中沒有的東西。在啓動swiperjs後添加一個'console.log($('。arrow-left'))''。如果是這種情況,考慮在'document'上設置綁定並委託給你的元素='$(document).on(「click」,「.arrow-left」,function ...'這應該有所幫助。 – frequent