1

我一直试图弄清楚这一点,但我还没有。

我正在构建锚标签的 html 列,我想知道将鼠标悬停在其上的那个的 id。

它应该很简单,但似乎我碰壁了,我看不出如何解决这个问题。

我遇到的问题是控制台上显示的 id 始终是数组的最后一个 id。而不是那个我想要特定锚的ID。

任何建议都非常受欢迎。

这是我的代码:

//Anchor builder
var numberOf = flatParamDateArray.length;

for (i = 0; i < numberOf; i++) {
    var param2Slider = document.createElement("a");
    param2Slider.id = 'sliderAnchor' + i;
    sliderAnchorId = param2Slider.id;
    param2Slider.name = 'param2Slider';
    param2Slider.className = 'nav2Slider a';
    document.getElementById('nav2Slider').appendChild(param2Slider);
    $('.nav2Slider a').onmouseover = function () {
        console.log('flatParamDateArray index: ' + param2Slider.id);
    }
}
4

2 回答 2

2

1.将其移出,并for循环之后:

$('.nav2Slider a').onmouseover = function () {
    console.log('flatParamDateArray index: '+param2Slider.id);
}

2.改为:onmouseover()_mouseover()

$('.nav2Slider a').mouseover(function() {
    console.log('flatParamDateArray index: '+param2Slider.id);
});

3.要获取 ID,这是您需要的代码:

    console.log('flatParamDateArray index: '+ $(this).prop('id'));

奖金:

由于您正在动态添加链接,因此您应该使用该.on()函数将事件处理程序的数量减少到一个(而不是每个元素一个):

$('.nav2Slider').on('mouseover', 'a', function() {
    console.log('flatParamDateArray index: '+ $(this).prop('id'));
});
于 2013-02-07T10:11:07.090 回答
0

您的变量param2Slider是全局变量,for循环会更改每个循环的值。这意味着循环完成后param2Slider只包含最后一个值。

试试这个:

$('.nav2Slider a').on('onmouseover', function () {
    console.log('flatParamDateArray index: ' + $(this).attr('id'));
});

编辑:onmouseover ... & 当然你应该把这个片段移出循环

于 2013-02-07T10:10:44.133 回答