繁体   English   中英

在JQuery中,如何在用户单击鼠标从DOM中删除元素后,如何获取元素的offset()。top

[英]In JQuery how do I get the offset().top of an element after a user removes an element from the DOM with a click

我知道长标题。 抱歉。

我只想知道在单击事件中删除元素后如何获得新职位。 基本上,我有一个栏,一旦用户单击就将其删除。 当滚动的距离大于偏移量时,页面上有一些按钮处于固定位置,因此看起来好像它们已脱钩。

我尝试在click事件之后在回调中执行offset()。top,但它仅输出原始偏移值,而不是距离减去所删除元素的距离。 这使得按钮看起来像是跳入了固定位置,因为它没有从偏移量中删除被单击元素的高度。

var distance = $('.anchor-con').offset().top;

alert($('.anchor-con').offset().top);

$(".icon-cross").click(function(){

    distance = $('.anchor-con').offset().top;
    alert($('.anchor-con').offset().top);

});

希望有道理。 对此会有一些帮助。

谢谢

您可以使用mouseup事件代替click因为您想在单击后知道新位置。

试试下面的代码

var distance = $('.anchor-con').offset().top;

alert($('.anchor-con').offset().top);

$(".icon-cross").mouseup(function(){
    distance = $('.anchor-con').offset().top;
    alert($('.anchor-con').offset().top);
});

因此您想通过单击将栏删除后知道锚点的新顶部。 请在您的点击处理程序中使用setTimeout(延迟为0),以确保删除该栏。 您执行的方式不能保证条形图已被删除,因为条形图删除单击处理程序可能在位置计算器处理程序之后执行。 如果我正确理解您的问题,下面的方法将起作用。

var distance = $('.anchor-con').offset().top;    
alert($('.anchor-con').offset().top);

$(".icon-cross").click(function(){
    setTimeout(function(){
        distance = $('.anchor-con').offset().top;
        alert($('.anchor-con').offset().top);
    }, 0);
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM