Приветствую. Совсем недавно познакомился с JS и вот недавно потребовалось написать небольшой скрипт для переключения контента. В принципе всё работает, но не совсем так как нужно. Сейчас есть три блока и у каждого блока несколько кнопок(переключателей), но у меня они зависят друг от друга, то есть если я хочу посмотреть контент второго блока, то из первого он пропадает. Соответственно прошу помощи: как заставить их работать по блокам, а не все вместе?
Код:
jQuery(function($) {
var $links, $switcher;
$links = $('[data-show]');
$switcher = $('.switch-js');
$switcher.children().not(':first').hide();
$links.click(function() {
var id;
id = '[data-switch="' + $(this).data('show') + '"]';
$switcher.children(id).show();
$switcher.children().not(id).hide();
});
});
jQuery(function($) {
var $links2, $switcher2;
$links2 = $('[data-show]');
$switcher2 = $('.switch-js-2');
$switcher2.children().not(':first').hide();
$links2.click(function() {
var id;
id = '[data-switch="' + $(this).data('show') + '"]';
$switcher2.children(id).show();
$switcher2.children().not(id).hide();
});
});
jQuery(function($) {
var $links3, $switcher3;
$links3 = $('[data-show]');
$switcher3 = $('.switch-js-3');
$switcher3.children().not(':first').hide();
$links3.click(function() {
var id;
id = '[data-switch="' + $(this).data('show') + '"]';
$switcher3.children(id).show();
$switcher3.children().not(id).hide();
});
});
$(document).ready(function() {
$('.switcher li').on('click', changeClass);
$('.switcher-two li').on('click', changeClass2);
$('.switcher-three li').on('click', changeClass3);
});
function changeClass() {
$('.switcher li').removeClass('selected');
$(this).addClass('selected');
}
function changeClass2() {
$('.switcher-two li').removeClass('selected');
$(this).addClass('selected');
}
function changeClass3() {
$('.switcher-three li').removeClass('selected');
$(this).addClass('selected');
}
.decorated {
border-radius: 5px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
margin-bottom: 1.5em;
display: inline-block;
}
.decorated__type2 {
background: #fbf9f7;
border-radius: 0;
-moz-border-radius: 0;
-webkit-border-radius: 0;
}
.decorated__type2 .decorated-inner {
padding: 0;
}
.decorated .decorated-inner {
padding: .7em 1.2em;
position: relative;
}
.cleared {
zoom: 1;
}
.variants {
float: left;
margin-top: 0;
padding: 1em 1em .7em;
}
.variants .switcher,
.variants .switcher-two,
.variants .switcher-three {
padding: .3em 0 1em;
position: relative;
white-space: nowrap;
}
ul {
list-style-type: none;
}
.variants .switcher .selected,
.variants .switcher-two .selected,
.variants .switcher-three .selected {
background: #eaeaea;
}
.variants .switcher li,
.variants .switcher-two li,
.variants .switcher-three li {
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
display: inline-block;
padding: 6px;
}
.variants .opening_view {
position: relative;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="decorated decorated__type2">
<div class="decorated-inner cleared">
<div class="variants">
<h3>Title 1</h3>
<ul class="switcher">
<li class="for_opening_view selected" data-show="one">1</li>
<li class="for_opening_view" data-show="two">2</li>
</ul>
<div class="switch-js">
<div class="opening_view" data-switch="one">Content for 'One' data-show</div>
<div class="opening_view" data-switch="two">Content for 'Two' data-show</div>
</div>
</div>
<div class="variants">
<h3>Title 2</h3>
<ul class="switcher-two">
<li class="for_opening_view selected" data-show="three">1</li>
<li class="for_opening_view" data-show="four">2</li>
<li class="for_opening_view" data-show="five">3</li>
</ul>
<div class="switch-js-2">
<div class="opening_view" data-switch="three">Content for 'Three' data-show</div>
<div class="opening_view" data-switch="four">Content for 'Four' data-show</div>
<div class="opening_view" data-switch="five">Content for 'Five' data-show</div>
</div>
</div>
<div class="variants">
<h3>Title 3</h3>
<ul class="switcher-three">
<li class="for_opening_view selected" data-show="six">1</li>
<li class="for_opening_view" data-show="seven">2</li>
<li class="for_opening_view" data-show="eight">3</li>
<li class="for_opening_view" data-show="nine">4</li>
</ul>
<div class="switch-js-3">
<div class="opening_view" data-switch="six">Content for 'Six' data-show</div>
<div class="opening_view" data-switch="seven">Content for 'Seven' data-show</div>
<div class="opening_view" data-switch="eight">Content for 'Eight' data-show</div>
<div class="opening_view" data-switch="nine">Content for 'Nine' data-show</div>
</div>
</div>
</div>
</div>
Да, я знаю что код скрипта ужасен, я просто пока не знаю как написать его правильно. Если кто-то покажет как правильно или пояснит, буду премного благодарен.
function switcher(){
[].forEach.call(document.body.querySelectorAll("[data-switcher]"),(a)=>{
let b = a.querySelectorAll("[data-switcher-name]"),
c = a.querySelectorAll("[data-switcher-show]");
[].forEach.call(c,(d)=>{
if (d.dataset.switcherSelected != undefined) {
d.classList.add("selected");
[].filter.call(b,(a)=>a.dataset.switcherName==d.dataset.switcherShow?a.classList.add("selected"):"");
}
d.addEventListener("click",()=>{
[].forEach.call(c,(a)=>a!=d?a.classList.remove("selected"):a.classList.add("selected"));
[].forEach.call(b,(a)=>a.dataset.switcherName!=d.dataset.switcherShow?a.classList.remove("selected"):a.classList.add("selected"));
},true);
});
});
}
window.onload = function() {
switcher();
}
[data-switcher] {
float: left;
margin-top: 0;
padding: 1em 1em .7em;
}
[data-switcher-show] {
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
display: inline-block;
padding: 6px;
cursor: pointer;
}
[data-switcher-show].selected {
background-color: #eaeaea;
}
[data-switcher-name]:not(.selected) {
display: none;
}
ul {
list-style-type: none;
padding: 0px;
}
.decorated {
border-radius: 5px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
margin-bottom: 1.5em;
display: inline-block;
}
.decorated .decorated-inner {
padding: .7em 1.2em;
position: relative;
}
<div class="decorated">
<div class="decorated-inner">
<div class="variants" data-switcher>
<h3>Title 1</h3>
<ul class="switcher">
<li data-switcher-show="0" data-switcher-selected>1</li>
<li data-switcher-show="1">2</li>
</ul>
<div data-switcher-name="0">Content for 'One'</div>
<div data-switcher-name="1">Content for 'Two'</div>
</div>
<div class="variants" data-switcher>
<h3>Title 2</h3>
<ul class="switcher">
<li data-switcher-show="0">1</li>
<li data-switcher-show="1" data-switcher-selected>2</li>
<li data-switcher-show="2">3</li>
</ul>
<div data-switcher-name="0">Content for 'Three'</div>
<div data-switcher-name="1">Content for 'Four'</div>
<div data-switcher-name="2">Content for 'Five'</div>
</div>
<div class="variants" data-switcher>
<h3>Title 3</h3>
<ul class="switcher">
<li data-switcher-show="0">1</li>
<li data-switcher-show="1">2</li>
<li data-switcher-show="2" data-switcher-selected>3</li>
<li data-switcher-show="3">4</li>
</ul>
<div data-switcher-name="0">Content for 'Six'</div>
<div data-switcher-name="1">Content for 'Seven'</div>
<div data-switcher-name="2">Content for 'Eight'</div>
<div data-switcher-name="3">Content for 'Nine'</div>
</div>
</div>
</div>
Виртуальный выделенный сервер (VDS) становится отличным выбором
у меня такая проблема c modx кодировке русский текст вообще не работает я установил modx и что то кодировка не работает и в сайте и в админке http://wwwpb-gip
Использую android studioНужно скачать картинку и закинуть ее в imageView
ЗдравствуйтеТребуется создать xml и записать не данные а сам xml файл в таблицу Oracle