Добрый день.
Есть код
function cl_open_folder(){
$(this).next().stop(true,true).slideDown(200);
if ($(this).hasClass("first_fold")) {
$(this).find(".cl_img_fol").css("background-position","-20px 0px");
}
else{
$(this).find(".cl_img_fol").css("background-position","-20px -18px");
}
$(this).toggleClass("close_folder open_folder");
}
function cl_close_folder(){
//alert("fdf");
$(this).next().stop(true,true).slideUp(200);
if ($(this).hasClass("first_fold")) {
$(this).find(".cl_img_fol").css("background-position","0px 0px");
}
else{
$(this).find(".cl_img_fol").css("background-position","0px -18px");
}
$(this).toggleClass("close_folder open_folder");
}
$(document).ready(function() {
$('.close_folder').on("click",cl_open_folder);
$('.open_folder').on("click",cl_close_folder);
});
При клике на закрытую папку, запускается функция cl_open_folder, после ее выполнения класс объекта меняется на open_folder вместо close_folder. Но 2-й обработчик событий уже не срабатывает при клике на open_folder, вместо этого срабатывает повторно первый. Если вконце функции cl_open_folder дописываю $('.open_folder').on("click",cl_close_folder);, то обработчики начинают включаться одновременно.
Как этого можно избежать? вроде метод on, должен включать в себя live.