如何使用Jquery测试对象是否在另一个对象内?

时间:2010-11-01 16:58:55

标签: jquery

如果不使用插件,我如何检查元素是否在另一个内?我试过用左 element.hover();
但无济于事。这是纯粹的JQuery可能的,或者我应该寻找一个解决方法?

目前的代码似乎是

$(document).ready(function(){  
    $(".element_to_drag").mousedown(function(){  
    $(this).addClass("dragging");   
    $(".dragging").live("mousemove", function(e) {  
        var offset = $("#container").offset();  
        var x = offset.left;  
        var y = offset.top;  
        $(this).css("position", "absolute");  
        $(this).css("left", e.pageX - x);  
        $(this).css("top", e.pageY - y);  
    })  
    $(".dragging").live("mouseup", function(e)  
    {  
        $(this).removeClass("dragging");  
    })  
    $("#elementContainer").hover(function()  
        {  
            $(".dragging").css("background-color", "red");  
        });  
    });  
});

我还在学习,随意批评任何事情。

1 个答案:

答案 0 :(得分:0)

更新您的mousemove函数以包含此内容:

$(this).css("position", "absolute");  
$(this).css("left", e.pageX - $(this).width()/2);  
$(this).css("top", e.pageY - $(this).height()/2);  

$(this)指的是您的可拖动对象。然后,您需要做的就是查看可拖动对象是否包含在#container内是if if语句检查$(this).css(“left”)是否大于X位置(不是偏移量:见容器的http://api.jquery.com/position/)。

当然,您可能还需要进行一些检查以查看可拖动项目的宽度,并确保它完全位于容器内。