2012-05-18 54 views
1

我無法獲得jQuery移動滑動事件在可摺疊集合內工作。如果我在可摺疊集合之外使用它,我可以使它工作。測試原理:容器內部的jQuery Mobile Swipe事件

<div id="listitem"> swipe me </div> 

我想做什麼工作:

<div data-role="collapsible-set" data-mini="true" data-theme= 
       "c" data-content-theme="d"> 
       <div data-role="collapsible" data-theme="a"> 
        <div> 
        <h4> 
         Conduct Training 
        </h4> 
        </div> 
        <div id="listitem"> 
        <p> 
         <a href="/PlaybookRequest/FileRequest/2014658414/" 
         rel="external" data-ajax="false">link</a> 
        </p> 
        </div> 
</div> 

兩者都是使用我的頁面佈局上此javascript:

<script type='text/javascript'> 
    $(window).load(function() { 
     $("#listitem").swiperight(function() { 
      console.log("worked"); 
     }); 
    }); 
</script> 

對於那些好奇:我希望能夠讓用戶點擊鏈接查看內容並輕掃鏈接以進行直接下載。

+0

網站首頁中的#listitem元素是否是?如果不是,那麼當'window.load'觸發時它將不可用。 – Jasper

+0

@twifosp請發表您是怎麼做到的? –

回答

0

當使用jQueryMobile你不應該使用的onload或domready中的事件,但應該使用pageinit事件,而不是:

$(document).live('pageinit', function() { 
    $("#listitem").swiperight(function() { 
     console.log("worked"); 
    }); 
}); 

運作的?

編輯:改變綁定生活。

+0

我無法得到這個工作。再次,它在我的測試中起作用,最初我在頁面上有元素。但是當我在頁面被使用時動態地創建內容div時,事件並未受到約束。 – twifosp

+0

好的,將.bind()改爲.live()。我更新了示例以使用live。這將爲任何動態創建的內容創建此事件綁定。 – davidethell