2013-03-30 31 views
6

JQuery mobile kullanıyorum ve belirli öğe üzerinde kaydırma olayını önlemem gerekiyor. Bunu yapmanın gerekmesi, kaydırıcıyı kullanıyorum ve kaydırma olayının çağrılan resp istemesini istemiyorum. Kullanıcının kaydırıcı ile işlediği zaman engellenmesini istiyorum. Ben de herhangi bir çözüm bulamadım bu yüzden burada yardım istiyorum.JQuery Mobile tokatlama olayını belirli bir öğenin üzerine engelle

Bu benim javascript kodu:

$(document).on("pageinit", "#demo-page", function() { 
    $(document).on("swipeleft swiperight", "#demo-page", function(e) { 

    // We check if there is no open panel on the page because otherwise 
    // a swipe to close the left panel would also open the right panel (and v.v.). 
    // We do this by checking the data that the framework stores on the page element (panel: open). 

    if ($.mobile.activePage.jqmData("panel") !== "open") { 
    if (e.type === "swipeleft" ) { 
     $("#right-panel").panel("open"); 
     } else if (e.type === "swiperight") { 
      $("#left-panel").panel("open"); 
     } 
    } 
    }); 
}); 

teşekkür ederiz.

cevap

11

Her ikisini de kullanmanız gerekir, stopPropagation(); ve preventDefault();.

.selector gelince, o ve No. ID veya .class, örneğin bir etiketi olabilir [data-role=page]#PageID, div.ui-content ... vb

$(document).on('swipeleft swiperight', '.selector', function(event) { 
event.stopPropagation(); 
event.preventDefault(); 
}); 
+0

, bu kaydırıcıyı önler hareket et ama p yaş geçişi… .on ('swipe', ': not (.ui-slider)', geçiş) ile aynı şeyi başarmak mümkün mü? – IazertyuiopI

+0

@IazertyuiopI, ': not()' selektörünü kullanabilirsiniz. Örneğin, – Omar

+0

, selector = '" swipeleft "," .foo: not (.ui-slider) ", function'. @IazertyuiopI – Omar

İlgili konular