2013-03-30 22 views
6

Używam jquery mobile i muszę zapobiec zdarzeniu przeciągania nad określonym elementem. Trzeba to zrobić, ponieważ używam suwaka i nie chcę wywoływać zdarzenia przeciągnięcia. Chcę, aby temu zapobiec, gdy użytkownik manipuluje suwakiem. Nie byłem w stanie znaleźć żadnego rozwiązania, więc proszę o pomoc.Zapobieganie ruchomym zdarzeniom JQuery Mobile przez określony element

To jest mój kod javascript:

$(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"); 
     } 
    } 
    }); 
}); 

Dziękuję.

Odpowiedz

11

Należy użyć obu, stopPropagation(); i preventDefault();.

chodzi o .selector może być znacznik i ID lub .class np [data-role=page]#PageID, div.ui-content ... itd

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

Więc w moim przypadku, to zapobiega suwak przenieść, ale nie p przejście wieku ... Czy można osiągnąć to samo z .on ("swipe", ": not (.ui-slider)", przejście)? – IazertyuiopI

+0

@IazertyuiopI można użyć przełącznika ': not()' oczywiście. – Omar

+0

na przykład selektor = '" swipeleft "," .foo: not (.ui-slider) ", function'. @IazertyuiopI – Omar

Powiązane problemy