Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Добавить в цепочку отбора элементов значение переменной

Доброго времени суток
Вопрос скорее всего элементарный, но побороть своими силами у новичка не получается
Есть ссылки
Код HTML5
1
2
3
<a href="#Info-1" class="Info"> 1</a>
<a href="#Info-2" class="Info"> 2</a>
<a href="#Info-3" class="Info"> 3</a>
При клике на ссылку выполняется некая функция (саму функцию не писал для сокращения кода):

Код Javascript
1
2
3
$(".Info").click(function() {
    $(" .wrapper .tab").click(function() { ... })
});
Необходимо значения атрибута «href» ссылки по которой кликнул добавить в цепочку отбора , например при клике на ссылку 1 получить:
Код Javascript
1
$("#Info-1   .wrapper    .tab").click(function() { ... })
на ссылку 2:
Код Javascript
1
$("#Info-2   .wrapper    .tab").click(function() { ... })

Получить значение атрибута , вроде как получилось, а вот добавить в цепочку отбора не очень
Код Javascript
1
2
3
4
$(".Info").click(function() {
    var hr = $(this).attr('href');
    $(" wrapper  .tab").click(function() { ... })
});
Ответ:
Сообщение от MAX2210
добавить в цепочку отбора
"Цепочка отбора" - называется селектором. Пробуйте так:
Код Javascript
1
2
3
4
$(".Info").click(function() {
    var hr = $(this).attr('href');
    $(hr + " .wrapper  .tab").click(function() { ... })
});
Вопрос: HashTabber, цепочка из hash

Искал в сети плагин табов с поддержкой hash и вложенностью. К сожалению, нашел я мало таковых, а если находил они не поддерживали вложенности. И нашел все же хороший плагин . Он поддерживает цепочку из hash типо #bar=foo&bar=foo&foobar=foo, благодаря чему он сможет правильно открыть нужную под-вкладку в нужной вкладке, но проблема в том, что плагин автоматически эти цепочки не строит и вообще автоматически заменяет href в тегах A, чтоб автоматом строить ссылки на вкладки.
Т.е. если я создам табы с foo=bar, а внутри bar=foo, то ссылки внутри вкладок будут просто bar=foo, а не #foo=bar&bar=foo. Как сделать, чтоб он строил полные цепочки ссылок? Я писал на гитхаб автору, но он не отвечает. Сам я код изменить не смогу, в документации нет примеров с вложенностью.
Заранее спасибо.
Ответ: Но почему тогда ссылка открывает нужный таб, если ввести в адресную строку цепочку?
Вопрос: Невыходит сделать цепочку с промисов

Помогите сделать цепочку последовности promise, чтобы консоль лог проходил 1 2 1 2 1 2, а не 1 2 2 1 2 2 1. Я специально сделал такую ситацию, чтобы понять как делать цепочки промисов но у меня ничего не выходит.


var log_first = function () {
console.log('1');
}

var log_second = function () {
console.log('2');
}

var promise = new Promise(function(resolve, reject) {
})

promise.then(setInterval(log_first, 1000));
promise.then(setInterval(log_second, 500));
Ответ: Чтобы промисы объединять именно в цепочки, надо писать либо так
promise
    .then(...)
    .then(...)


либо
promise = promise.then(...);
promise = promise.then(...);


в общем, для последующего then использовать тот промис, который вернулся предыдущим.

А у тебя оба then вызвались из одного и того же промиса, начав таким образом 2 независимые цепочки.

----
Конкретно по примеру - во первых, setInterval не возвращает функцию, да и вообще не монтируется в промисы (можно приспособить setTimeout, но его надо "промисифицировать"), ну и сам промис у тебя не резолвится (наверно, код не дописан)
Вопрос: Настройка цепочки навигации («хлебные крошки») в разделе «Новости»

Неправильно отображается цепочка навигации в разделе новости.

В самом разделе


И при просмотре элементов раздела


Вывожу цепочку стандартным bitrix:breadcrumb, в каталоге товаров всё работает корректно.
Подскажите, как исправить?

Спасибо
Ответ: Наверное один пункт добавляется от раздела, а другой от компонента. Можно например в компоненте (новостей) выключить опцию добавления пункта в хлебные крошки
Вопрос: Как перенести навигационную цепочку (хлебные крошки) с главной страницы во внутренние?

Доброго Всем времени суток!
Подскажите начинающему,как перенести навигационную цепочку(хлебные крошки)с главной страницы во внутренние?
Зарание спасибо!
Ответ: Спасибо.
Вопрос: не могу поймать ошибку в цепочке промисов

Здравствуйте! Я хочу цепочкой промисов обслуживать запрос.
Сначала нужно определить, пришел ли этот запрос на допустимый url, по результатам этой проверки совершать операции (обслуживать/не обслуживать). Эта проверка происходит в первом then (14 строка).
Функция, которая определяет корректность запроса, отрабатывает нормально, в случае ошибки запроса Error можно просмотреть в аргументах второго then (который на 20 строке), но при этом catch, находящийся между ними, ничего не ловит. В чём тут проблема?
//проверка на допустимость гет запроса.
function isValidRequest(requestPath) {
    let validReqs = ['/', '/index.html'];
    return !!~validReqs.indexOf(requestPath) || new Error('400');
};

function getHandler(req) {
    return new Promise((resolve, reject) => {
            return resolve(req);
    });
};

getHandler(pathname)
	.then(()=>{
		return isValidRequest(pathname); //отсюда должна вывалиться ошибка при неправильном запросе
	})
	.catch((e)=> { //не ловит
		console.log('error');
	})
	.then(function() {
		console.log(arguments); //из аргументов можно увидеть выпавшую ошибку
		return fs.ReadStream(__dirname+'/index.html')
	}).then((file) => {
		sendFile(file, res);
	});
Ответ: Спасибо, понял проблему)
Вопрос: как правильно записать цепочку событий??

Написал калькулятор дверей на JS в котором есть различные виды инпутов. следующие события запускают функцию
$(document).ready(function() {
  myFunction()
}); 
$("input").keyup(function () {
  myFunction()
});
$("input").blur(function () {
  myFunction()
});
$("input").change(function () {
  myFunction()
});

подскажите как их объединить в цепочку (в общем сократить этот код)?
Ответ: получилось методом тыка
function etazh() {
  var rng = $('#eta').val();
  $('#etazh').val(rng);
}

спасибо за помощь
Вопрос: Цепочка методов, выполнение одно за другим, как сделать?

Ребята всем привет! Пишу свою галерею, возникла проблема. Как сделать так, чтобы функции расположенные друг за другом в цепочке методов, выполнялись последовательно, т.е. пока не выполниться предыдущая функция, следующая не выполняется.

К примеру для добавления в галерею изображения,я скрываю старое изображение->удаляю его->вставляю новое->открываю его

мой вариант рабочий, но все же через setTimeout не очень корректен мне кажется

код для примера:
Javascript
1
2
3
4
5
6
7
8
$('.box').fadeOut(1000);//скрываем за одну секунду блок с картинкой
setTimeout(function(){
    $('box').empty();//через секунда опусташаем его
,1000);                     
$('.box').fadeIn(1000);//показываем блок
setTimeout(function(){
$('.box').append(newImage);//добавляем новую картинку
},1000);
И как в данном случае решить проблемы двойного клика на кнопку к примеру prev или next, т.е. чтобы хоть и нажали 2 раза, картинка все равно переключалась 1 раз.

Спасибо за внимание!
Ответ: Возможно вы читали про Промисы
Вопрос: Цепочка CSS

Нужно сверстать такую цепочку, помогите пожалуйста!
Ответ: Спасибо, друзья. Оба ответа очень помогли!
Вопрос: Цепочка вызовов

CODE (javascript):

  1. var Obj = {
  2.         foo: function(){
  3.                 // тут какое-нибудь условие, из за которого не будет вызван следующий метод
  4.                 return this;
  5.         },
  6.         bar: function(){
  7.         }
  8. };
  9.  
  10. Smth.foo().bar();


Можно как то избежать ошибки undefined bar(), если при каком то условии вызов будет недопустим?
Ответ:
etoYA, рекомендую забыть про цепочки, по причине их сложной отладки


-----
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук