【发布时间】:2017-08-06 08:38:13
【问题描述】:
当悬停在此类中的一个元素上时,我试图突出显示使用 JavaScript 从数组中动态创建的同一类的所有元素(person1、person2 等)。 F.e.如果我将鼠标悬停在带有 class: person1 的元素上,我希望所有带有 class: person1 的元素都被突出显示。主要问题是,当我将参数添加到添加 onmouseover 的 highlightGen 函数(将是 highlightGen(j) )然后根据情况通过此变量对每个 person1、person2、person3 工作时,该函数将停止一起工作.到目前为止,这是我想出的。
[更新]:我已经尝试过您的示例,但是当我向 highlightGen 函数添加参数时会出现相同的效果 - 没有响应。我附上了codepen,所以也许有人能弄清楚为什么它没有响应mouseenter。
https://codepen.io/mmsmsy/pen/zZddZz
jQuery UI 功能:
function highlightGen() {
$(this).addClass('hovered', 300);
}
function highlightGenNot() {
$(this).removeClass('hovered', 300);
}
以及从数组创建元素的 JavaScript 循环中的部分代码:
var div = document.createElement('div');
var divIdInitial = tree[j].name.toLowerCase();
var find = ["ą","ć","ę","ł","ń","ó","ś","ź","ż"," "];
var replace = ["a","c","e","l","n","o","s","z","z",""];
var divId = divIdInitial.replaceArray(find,replace) + tree[j].genNum;
div.setAttribute('id',divId);
var divClass = 'person person' + tree[j].genNum;
div.setAttribute('class',divClass);
div.onmouseover = highlightGen;
div.onmouseout = highlightGenNot;
【问题讨论】:
-
为什么不只是在悬停时更改类...所以悬停在任何
person1上做例如$('.person1').css('background', 'red');然后在鼠标移出时将其删除 -
这确实有效,但是我如何使该函数同时为其他类分别工作,如 person2、person3 等。
-
悬停在
person1上时,如果您想影响更多类,那么只需:$('.person1, .person2, .person2').css('background', 'red'); -
没有。我想将鼠标悬停在任何 .person1 元素上并影响所有且仅影响 .person1 元素。当悬停在任何 .person2 元素上以影响所有且仅影响 .person2 元素时,依此类推。
-
将鼠标悬停在任何
person2上,例如$('.person2').css('background', 'red');
标签: javascript jquery arrays highlight