Другая функция jQuery на основе родительского классаJquery

Программирование на jquery
Ответить
Anonymous
 Другая функция jQuery на основе родительского класса

Сообщение Anonymous »

У меня есть переключатель, который меняет родительский класс на элемент div, и в зависимости от этого родительского класса ссылки внутри этого родительского элемента выполняют разные действия. Я написал это так, будто это CSS :D

Код: Выделить всё

// if the parent is .major, do this:
$(".major .menu a").click(function(e){
$(".minor-result").removeClass("act");
$(".major-result").addClass("act");
e.preventDefault();
});
// if the parent is .minor, do this:
$(".minor .menu a").click(function(e){
$(".major-result").removeClass("act");
$(".minor-result").addClass("act");
e.preventDefault();
});
Кроме того, будет семь разных родительских классов. Это не может быть переключатель, и мне действительно нужны эти правила добавления/удаления для дочерних элементов.
Я понимаю, что jQuery привязывает эту функцию к существующей комбинации родитель-потомок и изменяет родительские классы не меняет функцию.
Изменить:
Одним из решений для скалывателя было бы размещение 7 уникальных ссылок внутри каждого меню li, и эти ссылки будут отображаться: блокировать/нет с помощью CSS , на основе родительского класса. Если каждая ссылка имеет только одну функцию, проблемы больше нет. Но, возможно, jQuery сможет упростить его, поменяв 7 параметров.

Код: Выделить всё

// swap classes for #scale
$(".make-minor a").click(function(e){
$("#scale").removeClass("major");
$("#scale").addClass("minor");
e.preventDefault();
});
$(".make-major a").click(function(e){
$("#scale").removeClass("minor");
$("#scale").addClass("major");
e.preventDefault();
});
// here is the part I struggle with:
// if the parent is .major, do this:
$(".major .menu a").click(function(e){
$(".minor-result").removeClass("act");
$(".major-result").addClass("act");
e.preventDefault();
});
// if the parent is .minor, do this:
$(".minor .menu a").click(function(e){
$(".major-result").removeClass("act");
$(".minor-result").addClass("act");
e.preventDefault();
});

Код: Выделить всё

.page-body {margin:20px auto;width:200px;}
a {text-decoration:none;padding:5px 10px;display:inline-block;}

.make-minor a {background:blue;color:#fff;}
.make-major a {background:red;color:#fff;}

.major .menu a {color:orange;}
.minor .menu a {color:teal;}

.act {display:block !important;}
.major-result, .minor-result {display:none;}

.major-result a {color:red;}
.minor-result a {color:blue;}

Код: Выделить всё



make it Major
make it minor


[list]
[*]I
[*]ii
[*]III
[/list]

[list]
[*]One
[*]Two
[*]Three
[/list]
[list]
[*]one minor
[*]two minor
[*]three minor
[/list]




Подробнее здесь: https://stackoverflow.com/questions/782 ... rent-class
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Jquery»