28

要素からトップを取得しようとしていますが、このエラーが発生します。これはどういう意味ですか?また、どうすればそれを取り除くことができますか?

$(".hover").offset().top

>Uncaught TypeError: Cannot read property 'top' of undefined

$(".hover")

[div.hover, prevObject: x.fn.x.init[1], context: document, selector: ".hover", jquery: "2.0.3", constructor: function…]
[prevObject: x.fn.x.init[1], context: document, selector: ".hover", jquery: "2.0.3", constructor: function…]

これは、ネストされたドロップ可能オブジェクトにドロップしようとすると、jqueryui のドロップ イベント内で発生します。

$.fn.makeDroppable = function(){
    $(this).droppable({
        drop: function(event, ui) {
            console.log($(".hover"));
            console.log($(".hover").offset().top);
            $(".hover").makeDroppable().removeClass("hover");
        },
        over: function(event, ui) {
            $("<div>").addClass("hover").appendTo(this);
        }
    });
}
$(".container").makeDroppable();

<div class="container"></div>
4

2 に答える 2

24

jQuery が実行されている要素が DOM にない場合、jQuery は prevObject を返します。実行時にソースに要素が表示される場合がありますが、DOM にバインドされていないため、prevObject が表示されます。js ファイルをもう一度確認するか、ここにコードを貼り付けてください。

于 2014-04-29T17:12:29.273 に答える