У меня есть div с большим количеством событий. Я пробовал две вещи:Переключить с несколькими действиями
1- Сделайте вторую часть переключателя с условным. Это работает, но ответ не идеальный, есть задержка секунды. Я упростил этот случай здесь: http://jsfiddle.net/T26vF/2/
2-Затем я попытался с простым переключением. Когда я нажимаю на объект, он работает нормально. Но здесь проблема в том, что когда я в первой части переключателя, и я нажимаю на фон или на другой объект и возвращаюсь к первому объекту, который я должен дважды щелкнуть (первый клик по-прежнему выполняет вторую часть переключателя). Я упростил дело здесь: http://jsfiddle.net/T26vF/4/
$(function(){
// THIS
$(".arrodonit").toggle(
function(){ $(this).children("img").animate({"width":"411px","marginLeft": "-85px","marginTop": "-80px"}, 900);
$(this).siblings(".fons").fadeOut("slow");
},
function(){ $(this).children("img").animate({"width":"233px","marginLeft": "0px","marginTop": "0px"}, 900);
$(this).siblings(".fons").fadeIn("slow");
}
);
// NOT THIS
$(".arrodonit").click(function(e) {
e.stopPropagation();
$('.arrodonit').not(this).siblings(".fons").fadeIn("slow");
$('.arrodonit').not(this).children("img").stop().animate({ "width":"233px","marginLeft": "0px","marginTop": "0px",}, 900);
$(".mesInfo").fadeIn()
$(".info").fadeOut()
});
// DOCUMENT
$(document).click(function() {
$('.fons').fadeIn();
$('.arrodonit img').animate({ "width":"233px","marginLeft": "0px","marginTop": "0px"}, 900);
});
})
Я спрашиваю:
- Что случилось с моим кодом?
- Почему есть задержка, если я делаю условие в первом случае?
- Почему я должен дважды щелкнуть во втором примере?
- Есть ли лучший способ сделать те же действия?
Что вы говорите, имеет смысл, но я пытаюсь поставить .stop(). оживить, например, в документе, и это не работает. Если я щелкнул первую часть переключателя, затем щелкните документ, а затем еще раз нажмите на объект, и я должен дважды щелкнуть. Я полагаю, что когда я нажимаю на документ, ему нужно выйти из переключателя и с помощью stop(); этого не происходит. Вы можете увидеть это здесь: http://jsfiddle.net/T26vF/5/ Возможно, я что-то не так. – Nrc
Почему у вас нет остановки в других анимациях, где это имеет смысл, а также – Dhiraj
Я положил stop(). во всем и ничего не меняется. http://jsfiddle.net/T26vF/9/ Вы можете сделать это самостоятельно, вы можете изменить его напрямую. – Nrc