2011-11-24 64 views
0

我需要在某些觸發器元素上觸發一個插件。jquery/jquery-mobile - 如何爲每個元素啓動一次函數,並將元素添加到DOM中

我使用這個:

$(':jqmData(role="page"):jqmData(trig="true")').live('pagebeforeshow',function(e){ 
    console.log("detected"); 
    // stuff to do... 
    }); 

因爲這是我的背景頁面(DOM中的第一個),用在每一個過渡現場火災,並與一個更換現場只觸發它最初的觸發因素上,而不是第二個元素在被拉到

問: 我如何可以設置爲「活到觸發要素的功能,但每三隻運行一次發現gger元素「?將數據幫助設置一個標誌?

感謝您的支持!

回答

0

我想你的困境是你必須使用.live(),因爲最初在DOM中只有1個匹配元素,而不是它們如何排序?否則,.one()應該正常工作。該manual對如何使用.bind()實現.one()一個很好的例子,這裏是你如何與.live()做到這一點,它應該做的伎倆:

function preparePage(e) { 
    $(this).die('pagebeforeshow', preparePage); 
    console.log("detected"); 
    // stuff to do... 
} 

$(':jqmData(role="page"):jqmData(trig="true")').live('pagebeforeshow', preparePage); 
+0

不會死......雖然$(這)是正確的選擇器 – frequent

+0

好的。它工作,需要調整另一部分代碼。謝謝! – frequent

0

設置一個變量,您可以存儲您的觸發器是否已被處理。使用這個變量作爲條件是你的觸發器,以確保它只運行一次。然後在知道觸發器可以再次運行時重置它。

相關問題