Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Slide Toggle (https://javascript.ru/forum/jquery/80885-slide-toggle.html)

toyboy__37 21.08.2020 04:49

Slide Toggle
 
Доброе утро.
Имеется данный скрипт. Всё работает как надо. Когда делаю подгрузку через ajax, то скрипт отказывается работать на подгруженных элементах... Пытался делать с on.('click), результат нулевой.
Помогите, пожалуйста, доделать.
var $but = $(".slide-btn"),
	$blocks = $(".slide-toggle");
$but.each(function (i, elem) {
	var $el = $(elem);
	$el.click(function () {
		$but.not($el).removeClass("active-menu-item");
		$el.toggleClass("active-menu-item");
		$blocks.each(function (j, el) {
			$(el)["slide" + (i == j ? "Toggle" : "Up")]();
		});
	});
});
$("html").click(function (event) {
	if ($(event.target).closest(".slide-btn, .slide-toggle").length) return;
	$but.filter(".active-menu-item").click();
});

рони 21.08.2020 10:42

toyboy__37,
а так ...
$("html").click(function (event) {
    if ($(event.target).closest(".slide-toggle").length) return;
    var $el = $(event.target).closest(".slide-btn");
    if ($el.length) {
    var $but = $(".slide-btn"),
	$blocks = $(".slide-toggle"),
    i = $but.index($el);
    $but.not($el).removeClass("active-menu-item");
	$el.toggleClass("active-menu-item");
    $blocks.each(function (j, el) {
			$(el)["slide" + (i == j ? "Toggle" : "Up")]();
		});
	}
	else $(".active-menu-item").click();
});

toyboy__37 21.08.2020 15:33

Большое спасибо!


Часовой пояс GMT +3, время: 12:04.