2013-06-19 3 views
0

Я не могу получить этот ответный вызов jQuery для работы для меня. Есть идеи? Кстати, пожалуйста, не беспокойтесь о переменных, у меня есть специальный проект для этого.jQuery Animate Callback не работает

$("#" + circle - 1).animate({ 
    opacity: 0, 
    "margin-top": "50", 
    height: '150px', 
    width: '150px' 
}, 1000, function() { 
    $("#" + circle).animate({ 
     opacity: 1, 
     "margin-top": "50", 
     height: '150px', 
     width: '150px' 
    }, 1000); 
}); 
+2

Что означает «не работает»? Можете ли вы создать пример jsFiddle.net? – j08691

+0

Он не запускает функцию обратного вызова или главную родительскую функцию ... Это не будет работать в JSFiddle, потому что это просто часть гораздо более крупной программы. Сожалею! :( –

+0

Попробуйте заменить «margin-top» marginTop: <- и не добавлять кавычки. –

ответ

1

Либо у вас есть проблема в $("#" + circle - 1), которые я не уверен, что вы пытаетесь вычесть 1 из, но я предполагаю, что ваш идентификатор номер, который будет завершаться NAN при расчете "#" + circle - 1 так измените его на "#" + (circle - 1) и попробуйте:

$("#" + (circle - 1)).animate({ //<- here use() to seperate the number calculation otherwise it will be NAN. 
    opacity: 0, 
    "margin-top": "50", 
    height: '150px', 
    width: '150px' 
}, 1000, function() { 

    $("#" + circle).animate({ 
     opacity: 1, 
     "margin-top": "50", 
     height: '150px', 
     width: '150px' 
    }, 1000); 
}); 
1

Для меня 1 не является действительным ID, используйте item1 и item2 тоже, например. Как это (http://jsfiddle.net/balintbako/XSGN8/):

var circle = 2; 
$("#item" + (circle - 1)).animate({ 
    opacity: 0, 
    "margin-top": "50", 
    height: '150px', 
    width: '150px' 
}, 1000, function() { 
    $("#item" + circle).animate({ 
     opacity: 1, 
     "margin-top": "50", 
     height: '150px', 
     width: '150px' 
    }, 1000); 
}); 
+0

Это два отдельных элемента – Smeegs

+0

Я вроде пропустил это :) –

+1

используя номер как id, с новыми спецификациями html. Кроме того, это был мой ответ перед самим редактированием. :) – PSL

1

Я предположил бы, что ваш код работает нормально, и есть что-то не так с вашими переменными. Если $ ('#' + circle) ничего не найдет, ничего больше не произойдет. Вот ваш код работает, слегка изменен.

http://jsfiddle.net/qbtDj/1/

$("#mydiv").animate({ 
    opacity: 0, 
    "margin-top": "50", 
    height: '150px', 
    width: '150px' 
}, 1000, function() { 
    $("#mydiv").animate({ 
    opacity: 1, 
    "margin-top": "50", 
    height: '150px', 
    width: '150px' 
}, 1000); 
}); 
Смежные вопросы