2012-04-02 12 views
1

Ich habe nach diesem gesucht und kann nichts finden.auf touchmove ändern jedes Element berührt

Grundsätzlich habe ich ein "touchmove" -Ereignis (über jQuery) an eine Reihe von divs gebunden .. was ich hoffte, würde passieren, ist, wie Sie über jedes div ziehen (ohne touchend) die div's attr "xyz" wechselt von 0 nach 1 oder bedeutet, dass es berührt wurde.

$("#itBoardFront div").on('touchmove',function(e){ 
    $(this).attr('data-hit',1); 
}) 

Wie Sie annehmen können, funktioniert dies nicht. Nur das Element, das gerade angefahren und bewegt wird, erhält den Datentreffer = 1.

Antwort

1

Ich konnte das lösen, indem ich die Koordinaten der Touch-Endpositionen abfing und sie dann mit jedem möglichen Divs x, y, w, h verglich.

+0

Kann ich vielleicht ein Beispiel für diese Lösung sehen? Genau das gleiche Szenario in meinem Code im Moment :) –

+1

Laust, im Grunde nur: wenn Maus über Bereich ausführen Funktion, die foreach jedes div ist und vergleicht x + y + w + h mit der Mausposition. –

0

Sie müssen "berühren und dann verschieben" pro Div. Dies liegt an der Art und Weise, in der die Ereignisse Feuer auf Ihre Elemente auslösen. Sie können dieses Beispiel sehen: http://jsfiddle.net/MpJUR/6/ In jedem div (außer dem ersten, der es standardmäßig nahm) müssen Sie zuerst klicken und berühren und dann bewegen, um den Ereignisauslöser zu erhalten. BTW, das Ereignis wird Trigger auf jeder 'Bewegung', es ist nicht effizient. Vielleicht möchtest du 'touchstart' pro div und/oder einfach mit 'touchmove' auf einem übergeordneten Element arbeiten, das alle divs enthält.

+0

Einige, was in der Nähe. Allerdings brauche ich es also, wenn du auf einen klickst und zu einem div gehst, damit der "any" div auch den Datentreffer bekommt. –

Verwandte Themen