2010-12-22 37 views
1

我用一個簡單的腳本工作之間的附加對象移動兩個div之間的一個img對象被點擊時:移動的div

$('img').click(function() 
{ 
    if ($(this).parents('#div1')) 
    { 
     //alert('in gallery'); 
     $(this).appendTo($('#div2')); 
    } 
    else if ($(this).parents('#div2')) 
    { 
     $(this).appendTo($('#div1')); 
    } 
}) 

的問題是,一旦IMG追加到DIV2,點擊img再次不會將其移回div1。當我插入一些測試警報時,看起來jquery仍然認爲img位於div1內部。

檢查瀏覽器中的元素顯示div2下的img。

Div2固定在屏幕的底部,而div1浮動在頁面上。有什麼我沒有考慮到做這項工作?

(第一張貼在這裏的左右,所以請溫柔,很樂意提供更多信息,以幫助!)

THX!

回答

1

的問題是這個:if ($(this).parents('#div1'))

它實際上沒有檢查是否img是內#div1,因爲jQuery總是返回即使如果沒有找到一個對象(含一個空數組)。由於對象是「truthy」(即{} == true},它總是會進入第一if

更改爲:

if ($(this).parents('#div1').length) 

,以檢查是否存在父

+0

完美,這就是全部。好了,謝謝! – charliesneath 2010-12-22 05:22:18