Мне нужна помощь, итерация, хотя массив объектов. Я могу успешно перебирать переменные "реквизиты", но я не могу использовать "propsObjs".
var props = {
'dog':'true',
'cat':'true',
'mouse':'true'
};
var propsObjs = [
{name:'dog', state:'true'},
{name:'cat', state:'true'},
{name:'mouse', state:'true'}
];
$.each(propsObjs, function (key, value) {
$('#' + key + '-btn').click(function () {
$(this).toggleClass('inactive-props');
$('.' + key + ' ').toggleClass('hide');
});
});
Вот ссылка на прототип: http://jsfiddle.net/readrefuse73/dZysP/10/
Второй - propsObjs
- массив object
.
Поэтому попробуйте получить доступ к name
свойства объекта, который поможет вам
$.each(propsObjs, function (index, obj) {
$('#' + obj.name+ '-btn').click(function () {
$(this).toggleClass('inactive-props');
$('.' + obj.name+ ' ').toggleClass('hide');
});
Во-первых, функция делегата $.each
итерации имеет параметры index
и value
. Поэтому в вашем примере key
представляет собой целое число, содержащее индекс итерации, а value
- это объект, содержащийся в массиве. Что вам нужно, это нечто большее:
$.each(propsObjs, function (index, value) {
var key = value.name;
$('#' + key + '-btn').click(function () {
$(this).toggleClass('inactive-props');
$('.' + key).toggleClass('hide');
});