2014-03-14 54 views
1

我在jquery集中有一些div,名爲set $,它們全都一起移動了,我現在希望能夠UNDO移動。之前,我做了我的舉動分身設置$有:如何在一組DOM元素中找到具有給定ID的元素?

set_before_move$ = set$.clone() 

的舉動後,set$成員都非常感動和set_before_move$成員應具有原始偏移。我認爲撤消,此舉是要經過set$,每個成員

  1. 獲得ID
  2. 找到set_before_move$
  3. 與ID的元素拉離set_before_move$成員
  4. 應用的偏移

    :在set$成員

我看起來像碼偏移

var off; 
set$.each(function() { 
    moved_id = $(this).attr('id'); // get the id of this element 
    unmoved_el$ = set_before_move$.([id=moved_id]); // find element in set_before_move$ 
    off = unmoved_el$.offset(); // get its offset 
    $(this).offset(off); // put the offset into the set$ member 
}); 

但它不喜歡方括號。有人看到正確的做法嗎?

由於

+0

你有這個例子小提琴? – csteel

回答

1

可以使用filter()方法中,爲了jQuery對象set_before_move$減少到一組單個元件的與moved_id

例如:

var moved_id = 'some-id'; 
unmoved_el$ = set_before_move$.filter(function() { 
    return $(this).attr('id') == moved_id; 
}); 
+0

非常好!謝謝 – Steve

1

您需要設置爲true:

set_before_move$ = set$.clone(true) 
+0

謝謝,但我仍然沒有得到原始div的偏移值。我在這裏打開一個新的問題,用jsfiddle,如果你想看看它http://stackoverflow.com/questions/22397899/clone-not-getting-top-left-values-of-original-div – Steve

相關問題