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()関数を使用して、イベントハンドラーの数を(要素ごとに1つではなく)1つに減らす必要があります。

$('.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 に答える