Я постараюсь сохранить это короткое. Я пытаюсь создать коробки текста, которые скрывают или показывают, когда пользователь нажимает кнопку расширения. Я использую метод toggle().jQuery.each() проблема
Разметка, как это:
<span id="toggle0">+</span>
<div id="toggle0Container">
blablabla...
<div>
<span id="toggle1">+</span>
<div id="toggle1Container">
blablabla...
<div>
<span id="toggle2">+</span>
<div id="toggle2Container">
blablabla...
<div>
// etc
# toggle0 предполагается переключить # toggle0Container, то # toggle1 переключает # toggle1Container и так далее. Все это генерируется PHP, поэтому может быть любое количество этих контейнеров.
Вот код JQuery:
$(document).ready(function() {
// array of numbers, it's pretty redundant, there will never be more than 30 containers
var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9 , 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36];
// hide all containers first
jQuery.each(arr, function() {
$('#toggle' + this + 'Container').hide();
});
// now the toggle buttons
jQuery.each(arr, function() {
$('#toggle' + this).click(function() {
// this line is not working
$('#toggle' + this + 'Container').slideToggle('slow');
// and this just changes the toggle button from + to -
if ($(this).html() == '+') {
$(this).html('-');
} else {
$(this).html('+');
}
});
});
});
Он работает для переключения части (я добавил комментарий выше линии, которая не работает), за исключением. Где проблема?
Спасибо всем за ответы, они были очень полезны, но я пойду с массивом, спасибо DrJokepu за исправление каждого метода(). –
Единственная точка этого ответа - показать вам, где ваш синтаксис выключен. Вы действительно, действительно не должны его использовать - особенно когда он ломает слишком много контейнеров, а нерушимое исправление намного проще. (Реальная причина, однако, в том, что избыточный массив вредит моим eeeyyyyyeeeesssssss.) – Matchu