![](/img/trans.png)
[英]How do I get reference to DOM element in jQuery based on DOM element's contents?
[英]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.