Опитвам се да използвам индекс на масив, за да позволя на набор от идентификатори на div да се променят от един идентификатор на друг, когато се задействат функциите mouseenter и mouseleave.
Знам, че има други начини да направите това - превключване, задържане на курсора или CSS задържане. Това е просто обучение за мен и съм много нов.
Кодът по-долу е коментиран и основният проблем е свързан с това защо променлива на масив от "largeID" (или smallID) извежда правилните стойности, но опитът да се използва стойност на индекс не. За всеки оператор for искам стойността smallID[i] да бъде заменена със стойността largeID[i], когато мишката влезе в div, но не искам да пиша кода за всеки един, т.е. "largeID[1] , голям ИД[2].
Благодаря за всякакви насоки!!
$(document).ready(function() {
var smallID = [];
var largeID = [];
var divList = document.getElementsByTagName('div')[1]; //get the second (radialMenu) div in the document
var radialDivList = divList.getElementsByTagName('div'); // get all divs under the second (radialMenu) div
for(var i = 0; i < radialDivList.length; i++) {
if (!radialDivList[i]) continue; //skip null, undefined and non-existent elements
if (!radialDivList.hasOwnProperty(i)) continue; //skip inherited properties
smallID[i] = radialDivList[i].id; //assign the list of four divs to the smallID array;
largeID[i] = smallID[i] + 'Full'; // add "Full" to each smallID element to make a largeID element
alert(smallID[i]); // alerts for smallID / largeID and smallID[i] / largeID[i]
alert(largeID[i]); // give rational and expected output
$('#' + smallID[i]).mouseenter(function () { //works for all four radial menu divs when mouse enters
//BUT largeID[i] is undefined
alert(largeID[i]); // undefined
alert(largeID); // gives expected output of full array
}).mouseleave(function () { //mouseleave function not working
});
}