簡體   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