pracuję w aplikacji mobilnej, gdzie staram się połączyć Draggable funkcjonalność jQuery UI jest z imprezy taphold jQuery Mobile. Chodzi o to, że element staje się dający się przeciągnąć, gdy wykonywana jest tafta.Łącząc taphold jQuery Mobile i jQuery UI przeciągalne
Draggable jest inicjowany na elementach w poniższym kodzie:
$('div.rect', '#outerBox').draggable({
containment: "parent",
grid: [50, 50],
disabled: true,
stop: function(event, ui) {
$(this).draggable('disable');
$(this).removeClass('highlighted');
}
});
Jak widać przeciągany funkcjonalność jest początkowo wyłączona, ponieważ chcę, aby włączyć go po zdarzeniu taphold. Aby to osiągnąć obecnie używam następujący kod:
// Bind long press event to rectangle elements
$('div.rect', '#outerBox').bind('taphold', function(event, ui) {
// Enable dragging on long press
$(this).addClass('highlighted');
$(this).draggable('enable');
});
To działa, ale problemem jest to, że „zamiast zwolnić i-tap-again'-event jest potrzebne, aby przeciągnąć element wokół, przeciągania bezpośrednio po zdarzeniu typu taphold. Czy może to być jakiś problem z zakłóceniami zdarzeń? Próbowałem rzeczy jak event.preventDefault()
ale moja wiedza o wydarzeniach jQuery nie jest dużo, więc nie mam pojęcia, czy nie powinno to żadnej różnicy.
Każdy pomysł jak rozwiązać ten jeden?
Twój kod działa poprawnie z jQuery Mobile 1.4.4+, nie ma potrzeby stosowania obejścia sugerowanego poniżej. –