Перемещение добавленного объекта между div - PullRequest
1 голос
/ 22 декабря 2010

Я работаю с простым сценарием, чтобы перемещать объект 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.

Проверка элемента в браузере показывает img под div2.

Div2 фиксируется в нижней части экрана, а div1 находится на странице. Есть ли что-то, что я не принимаю во внимание, чтобы сделать эту работу?

(первое сообщение здесь на SO, поэтому, пожалуйста, будьте осторожны, с радостью предоставьте больше информации, чтобы помочь!)

ТНХ!

1 Ответ

1 голос
/ 22 декабря 2010

Проблема в следующем: if ($(this).parents('#div1'))

На самом деле не проверяется, находится ли img в пределах #div1, потому что jQuery всегда возвращает объект (содержащий пустой массив), даже если ничего не найдено,Поскольку объекты являются «правдивыми» (т. Е. {} == true}, они всегда будут входить в первый if блок.

Изменитесь на:

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

, чтобы проверить, существует ли родительский элемент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...