26.05.2016, 19:14
|
Аспирант
|
|
Регистрация: 19.04.2016
Сообщений: 55
|
|
Вот как Decode сделал, то можно изменить class у 5-и div, но только с 1-го по 5-й, а если я хочу изменить вот так к примеру: 3, 6, 8, 10, 7 - но так я не могу... То бишь почему-то после 5-го div все остальные неактивные для изменения стали... скорее всего из-за селектора lt, но альтернативы что-то не могу найти
|
|
26.05.2016, 19:15
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
Сообщение от PonyS
|
Вы о чем?
|
да вот об этом
Цитата:
|
а мне нужно чтобы была возможность выбрать без привязки
|
|
|
26.05.2016, 19:19
|
Аспирант
|
|
Регистрация: 19.04.2016
Сообщений: 55
|
|
Сообщение от Dilettante_Pro
|
да вот об этом
|
Я просто попросил помощи, если вы об этом т.к. зашел в тупик уже...
|
|
26.05.2016, 19:25
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
PonyS,
Я просто немного забежал вперед в ваших просьбах.
А как вы хотите определять, какие блоки переключать?
|
|
26.05.2016, 19:25
|
Профессор
|
|
Регистрация: 31.01.2015
Сообщений: 576
|
|
PonyS, так?
<!doctype html>
<html>
<head>
<meta charset="utf-8" /
<title></title>
<style>
.select {
background: red;
}
</style>
</head>
<body>
<p class="price">1</p>
<p class="price">2</p>
<p class="price">3</p>
<p class="price">4</p>
<p class="price">5</p>
<p class="price">6</p>
<p class="price">7</p>
<p class="price">8</p>
<p class="price">9</p>
<p class="price">10</p>
<input type="hidden" value="5" />
<script src="https://code.jquery.com/jquery-2.1.4.js"></script>
<script>
var count = $('input[type=hidden]').val(), i = 1;
$('.price').click(function() {
toggleClass(this);
});
function toggleClass(elem) {
if (i > count && !$(elem).hasClass('select')) return;
( $(elem).hasClass('select') ) ? ( $(elem).removeClass('select'), i-- ) : ($(elem).addClass('select'), i++);
}
</script>
</body>
</html>
|
|
26.05.2016, 19:30
|
Аспирант
|
|
Регистрация: 19.04.2016
Сообщений: 55
|
|
Сообщение от Decode
|
PonyS, так?
<!doctype html>
<html>
<head>
<meta charset="utf-8" /
<title></title>
<style>
.select {
background: red;
}
</style>
</head>
<body>
<p class="price">1</p>
<p class="price">2</p>
<p class="price">3</p>
<p class="price">4</p>
<p class="price">5</p>
<p class="price">6</p>
<p class="price">7</p>
<p class="price">8</p>
<p class="price">9</p>
<p class="price">10</p>
<input type="hidden" value="5" />
<script src="https://code.jquery.com/jquery-2.1.4.js"></script>
<script>
var count = $('input[type=hidden]').val(), i = 1;
$('.price').click(function() {
toggleClass(this);
});
function toggleClass(elem) {
if (i > count && !$(elem).hasClass('select')) return;
( $(elem).hasClass('select') ) ? ( $(elem).removeClass('select'), i-- ) : ($(elem).addClass('select'), i++);
}
</script>
</body>
</html>
|
Да,очень помогли, спасибо большое!
|
|
26.05.2016, 19:55
|
Аспирант
|
|
Регистрация: 19.04.2016
Сообщений: 55
|
|
Подскажите пожалуйста последнее, пробую получить значения что я выбрал из <p class="place"> по клику и занести его в input text, но не получается занести все что выбрал, а только 1-но, последнее что выбрал. То бишь к примеру я изменил class 3-у, 5-у, -6у блоку, и в input text после изменения каждого(по очереди) записывались данные из тега <p>, то бишь вышло бы так : <input type="text" value="3,5,6">, пробую вот так:
<script>
var count = $('input[type=hidden]').val(), i = 1;
$('.place').click(function() {
toggleClass(this);
var text = $(this).text();//получаю значение .place
$('input[type=text]').val($(this).text() + $(this).text());//заношу в input значение из place
});
function toggleClass(elem) {
if (i > 5 && !$(elem).hasClass('select')) return;
( $(elem).hasClass('select') ) ? ( $(elem).removeClass('select'), i-- ) : ($(elem).addClass('select'), i++);
}
</script>
В итоге с моим скриптом выходит просто дубль 1-го p что я выбрал, <input type="text" value="88">
|
|
26.05.2016, 20:05
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
Decode,
строка 4!!!
|
|
26.05.2016, 20:05
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
PonyS,
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style>
.select {
background: red;
}
</style>
</head>
<body>
<p class="price">1</p>
<p class="price">2</p>
<p class="price">3</p>
<p class="price">4</p>
<p class="price">5</p>
<p class="price">6</p>
<p class="price">7</p>
<p class="price">8</p>
<p class="price">9</p>
<p class="price">10</p>
<input type="hidden" value="5" />
<input type="text" value="">
<script src="https://code.jquery.com/jquery-2.1.4.js"></script>
<script>
var count = $('input[type=hidden]').val();
$('.price').click(function() {
$(this).toggleClass('select', $('.select').length < count && !$(this).is('.select'));
var arr = [];
$('.price').each(function(i,el){
$(el).is('.select') && arr.push(++i)
});
$('input[type=text]').val(arr)
});
</script>
</body>
</html>
|
|
26.05.2016, 20:17
|
Аспирант
|
|
Регистрация: 19.04.2016
Сообщений: 55
|
|
Сообщение от рони
|
PonyS,
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style>
.select {
background: red;
}
</style>
</head>
<body>
<p class="price">1</p>
<p class="price">2</p>
<p class="price">3</p>
<p class="price">4</p>
<p class="price">5</p>
<p class="price">6</p>
<p class="price">7</p>
<p class="price">8</p>
<p class="price">9</p>
<p class="price">10</p>
<input type="hidden" value="5" />
<input type="text" value="">
<script src="https://code.jquery.com/jquery-2.1.4.js"></script>
<script>
var count = $('input[type=hidden]').val();
$('.price').click(function() {
$(this).toggleClass('select', $('.select').length < count && !$(this).is('.select'));
var arr = [];
$('.price').each(function(i,el){
$(el).is('.select') && arr.push(++i)
});
$('input[type=text]').val(arr)
});
</script>
</body>
</html>
|
Спасибо большое, буду дальше изучать js)
|
|
|
|