2

jquery index() 似乎无法识别其中一个元素,总是说“无法读取未定义的属性'长度'”这是我的代码。mnumber 是导致问题的原因。我需要 number 和 mnumber 才能使用鼠标进行跟踪,并根据他们悬停在哪个框上为他们提供正确的值。

$(".module-details-lesson-container").hover(function () {
    var number = $(".module-details-lesson-container").index(this) - 9;
    var mnumber = $(".module-container").index(this);
    jQuery.each(modules[1][number], function (index, value) {
        $(".module-details-words-learned-body").eq(1).append("<div class='module-details-word'>" + value + '</div>');
    });
}, function () {
    $(".module-details-word").remove();
});

css 文件

<div class="module-container">
<div class="module-tab  envelope-heading white-font"></div>
<div class="module-body">


            <div class="module-details-lesson-container"></div>
            <div class="module-details-lesson-container"></div>
        </div>

        <div class="module-details-words-learned">
            <div class="module-details-words-learned-body ">
                <div class="module-details-word"></div>
            </div>
        </div>

</div>

4

2 回答 2

3

我认为它必须$(this)代替this它提到的任何地方

于 2012-10-30T19:33:11.593 回答
0

这个问题看起来你可能误用了关键字this。要访问所需范围内的正确对象,您需要在委托函数中将其替换为 $(this) :

$(".module-details-lesson-container").hover(function(){
        // Changed this to $(this) below
        var number = $(".module-details-lesson-container").index($(this))-9;
        var mnumber = $(".module-container").index($(this));

        jQuery.each(modules[1][number], function(index,value){
            $(".module-details-words-learned-body").eq(1).append("<div class='module-details-word'>" + value + '</div>');
        });
    },
    function(){$(".module-details-word").remove();
}); 
于 2012-10-30T19:37:23.527 回答