2017-01-29 6 views
0

Ok, diese Frage fordert mich auf, eine Funktion basierend auf den Mauskoordinaten und den Abmessungen der einzelnen Textfelder zu erstellen, aber ich kann nicht herausfinden, wie jede Instanz mindestens einen Punkt enthält berührt die Linie von Mausanfang und -ende.Erstellen einer MultiSelection-Funktion Probleme beim Abrufen aller Werte

function multiSelection(dimensions, tasks, mouseCoordinates) { 
 
    var inDrag = []; 
 
    var width = dimensions[0]; 
 
    var height = dimensions[1]; 
 
    var spaceHeight = dimensions[2]; 
 

 
    if (mouseCoordinates[0][1] > mouseCoordinates[1][1]) { 
 
    var LineStart = mouseCoordinates[1][1]; 
 
    var LineEnd = mouseCoordinates[0][1]; 
 
    } else { 
 
    var LineStart = mouseCoordinates[0][1]; 
 
    var LineEnd = mouseCoordinates[1][1]; 
 
    } 
 

 
    var pos = 0 
 
    for (var i = 0; i <= tasks.length; i++) { 
 
    pos = pos + height + spaceHeight 
 
    if (LineStart < pos && pos < LineEnd) { 
 
     inDrag.push(tasks[i]); 
 
    } 
 
    } 
 
    return inDrag; 
 
} 
 

 
console.log(
 
    multiSelection(
 
    [135, 9, 1], 
 
    ["Task 1", "Task 2", "Task 3", "Very Important Task", "Not So Important Task", "Yet Another Task", "The last task"], 
 
    [ [132, 42], [35, 13] ] 
 
) 
 
);

+0

Also, was ist das Problem? –

+0

wenn ich den Code ausführen, sollte es Aufgabe 2 "," Aufgabe 3 "," sehr wichtige Aufgabe "," nicht so wichtige Aufgabe ", aber es gibt nur Aufgabe 2", "Aufgabe 3", "sehr wichtige Aufgabe" –

+0

kann Sie schaffen eine Geige? –

Antwort

0

ich Ihren Code für mögliche Szenarien getestet und kommentiert es; Schau mal. Ich bin mir nicht sicher, ob Sie eine Frage stellen, die sich lohnt, auf StackOverflow zu bleiben, aber trotzdem haben Sie ein Problem mit Ihren Eingaben.

function multiSelection(dimensions, tasks, mouseCoordinates) { 
    var inDrag = []; 
    var width = dimensions[0]; // 135 
    var height = dimensions[1]; // 9 
    var spaceHeight = dimensions[2]; // 1 

    if (mouseCoordinates[0][1] > mouseCoordinates[1][1]) { // 42 > 13 = true 
    var LineStart = mouseCoordinates[1][1]; // 13 
    var LineEnd = mouseCoordinates[0][1]; // 42 
    } else { 
    var LineStart = mouseCoordinates[0][1]; // 42 
    var LineEnd = mouseCoordinates[1][1]; // 13 
    } 

    var pos = 0 
    for (var i = 0; i <= tasks.length; i++) { // 7 times 
    pos = pos + height + spaceHeight // pos + 9 + 1 
    if (LineStart < pos && pos < LineEnd) { 
     // 1st time: 13 < 10 && 10 < 42 
     // 2nd time: 13 < 11 && 11 < 42 
     // 3rd time: 13 < 12 && 12 < 42 
     // 4th time: 13 < 13 is false, end of possibilities! 
     inDrag.push(tasks[i]); 
    } 
    } 
    return inDrag; 
} 

console.log(
    multiSelection(
    [135, 9, 1], 
    ["Task 1", "Task 2", "Task 3", "Very Important Task", "Not So Important Task", "Yet Another Task", "The last task"], 
    [ [132, 42], [35, 13] ] 
) 
); 
Verwandte Themen