My goal is to design an e-commerce storefront with tile design, where the thumbnail of an item is shown, then upon hover, the item name is shows above it. Similar to this, except that it slides up on hover
instead of simply appearing.
The main problem is that we're using an e-commerce storefront solution with a prepackaged template for the item display, where all HTML is autogenerated, and all items have a css class with no css ID.
Here's the HTML, with unneeded code edited out
<td class="hoverClass">
<--Edited out code-->
<table class="otherClass" cellspacing="0" cellpadding="0" width="100%" style="height: 158px; width: 190px;">
<edited out>
</table>
<table class="appearClass" cellspacing="0" cellpadding="0" width="100%" style="margin-bottom: 0px;">
<edited out>
</table>
</td>
My goal is to hover of .hoverClass
and .appearClass
appears over it. I included .otherClass
because in my research it tended to be 2 divs on the same level that could slide toggle, not a parent and child Div My plan was to use Jquery slideToggle
so I tried dynamically adding IDs to the classes.
<script>
var x = document.getElementsByClassName("hoverClass");
var y = document.getElementsByClassName("appearClass");
var thumbArray = [];
var footArray = [];
for(var i = 0; i < x.length; i++)
{
thumbArray.push("catThumb" + i);
footArray.push("catFoot" + i);
x[i].id = thumbArray[i];
y[i].id = footArray[i];
}
for(var j = 0; j < x.length; j++)
{
$("#" + thumbArray[j]).hover(function(){
$("#" + footArray[j]).slideToggle();
});
}
</script>
What occurs is that all the elements have their IDs created, but all those custom hover IDs have their hover bonded to the last appearClass
element. In other words, if I have 10 items and I run this code, hovering over items 1 through 10 only causes the slide on item 10.
How can I get the hover IDs to bond with its instance of appear ID?
You can't get footArray[j] value when you hover the item If you want desire output use this
If Those are dynamic class you can use like this