根据 link 次点击更改 div 的内容
Change content of div based on link click
很简单,我想通过 jQuery 更改 div 的 class,单击 <a>
元素,具体取决于匹配的 ID
你应该知道我在 JavaScript/jQuery 方面没有经验,我的代码是一起用谷歌搜索的。
想法是月份列表和默认内容。如果您单击某个月份,它会显示特定月份的内容并隐藏默认内容。
我根据自己的情况做了一个codepen:http://codepen.io/garrthes/pen/oXqzdL
我抄袭了这段代码,但它在我的情况下不起作用:http://codepen.io/JoshBlackwood/pen/yoLBJ(非常感谢你,JoshBlackwood!)
我不知道这是否相关,但我想 运行 在 Wordpress 中使用它。 jQuery 库在 Wordpress 中加载。
我认为错误出在 JS 中...
非常感谢!
HTML
<div class="eventmobile">
<ul class="eevmonths">
<li><a href="#eevcontent">1</a></li>
<li><a href="#eevcontent">2</a></li>
<li><a href="#eevcontent">3</a></li>
<li><a href="#eevcontent">4</a></li>
<li><a href="#eevcontent">5</a></li>
<li><a href="#eevcontent">6</a></li>
<li><a href="#eevcontent">7</a></li>
<li><a href="#eevcontent">8</a></li>
<li><a href="#eevcontent">9</a></li>
<li><a href="#eevcontent">10</a></li>
<li><a href="#eevcontent">11</a></li>
<li><a href="#eevcontent">12</a></li>
</ul>
</div>
<div class="eventtablet">
<ul class="eevmonths">
<li><a href="#eevcontent">Jan</a></li>
<li><a href="#eevcontent">Feb</a></li>
<li><a href="#eevcontent">Mär</a></li>
<li><a href="#eevcontent">Apr</a></li>
<li><a href="#eevcontent">Mai</a></li>
<li><a href="#eevcontent">Jun</a></li>
<li><a href="#eevcontent">Jul</a></li>
<li><a href="#eevcontent">Aug</a></li>
<li><a href="#eevcontent">Sep</a></li>
<li><a href="#eevcontent">Okt</a></li>
<li><a href="#eevcontent">Nov</a></li>
<li><a href="#eevcontent">Dez</a></li>
</ul>
</div>
<div class="eventlarge">
<ul class="eevmonths">
<li><a href="#eevcontent">Januar</a></li>
<li><a href="#eevcontent">Februar</a></li>
<li><a href="#eevcontent">März</a></li>
<li><a href="#eevcontent">April</a></li>
<li><a href="#eevcontent">Mai</a></li>
<li><a href="#eevcontent">Juni</a></li>
<li><a href="#eevcontent">Juli</a></li>
<li><a href="#eevcontent">August</a></li>
<li><a href="#eevcontent">September</a></li>
<li><a href="#eevcontent">Oktober</a></li>
<li><a href="#eevcontent">November</a></li>
<li><a href="#eevcontent">Dezember</a></li>
</ul>
</div>
<div id="eevcontent">
<div class="eevdefault-text">Default Text</div>
<div class="eevcontent-jan eevhide">
<h3>Januar</h3>
</div>
<div class="eevcontent-feb eevhide">
<h3>Februar</h3>
</div>
<div class="eevcontent-mar eevhide">
<h3>März</h3>
</div>
<div class="eevcontent-apr eevhide">
<h3>April</h3>
</div>
<div class="eevcontent-mai eevhide">
<h3>Mai</h3>
</div>
<div class="eevcontent-jun eevhide">
<h3>Juni</h3>
</div>
<div class="eevcontent-jul eevhide">
<h3>Juli</h3>
</div>
<div class="eevcontent-aug eevhide">
<h3>August</h3>
</div>
<div class="eevcontent-sep eevhide">
<h3>September</h3>
</div>
<div class="eevcontent-okt eevhide">
<h3>Oktober</h3>
</div>
<div class="eevcontent-nov eevhide">
<h3>November</h3>
</div>
<div class="eevcontent-dez eevhide">
<h3>Dezember</h3>
</div>
</div>
CSS
@media only screen and (max-width: 450px){
.eventtablet{
display:none;
}
.eventlarge{
display:none;
}
}
@media only screen and (max-width: 1259px) and (min-width:451px){
.eventmobile{
display:none;
}
.eventlarge{
display:none;
}
}
@media only screen and (min-width: 1260px){
.eventmobile{
display:none;
}
.eventtablet{
display:none;
}
}
.eevhide {
display: none;
}
JS
$(document).ready(function ($) {
$('ul.eevmonths > a').click(function () {
var $this = $(this),
$id = $this.attr('sid'),
$class = '.' + $('.eevcontent-' + $id).attr('class').replace('eevhide', '');
$('.eevdefault-text').addClass('eevhide');
$('.eevcontent-' + $id).removeClass('eevhide');
$('div[class*=eevcontent]').not($class).addClass('eevhide');
});
});
好的,伙计,我想通了你的问题,我对 HTML/JQUERY 做了一些更改,因为它完全是一团糟。应该很容易理解,但如果您有任何问题,请随时提问
https://jsfiddle.net/bpjk8174/3/
HTML
<div class="eventmobile">
<ul class="eevmonths">
<li><a class="jan">1</a></li>
<li><a class="feb">2</a></li>
<li><a class="mar">3</a></li>
<li><a class="apr">4</a></li>
<li><a class="mai">5</a></li>
<li><a class="jun">6</a></li>
<li><a class="jul">7</a></li>
<li><a class="aug">8</a></li>
<li><a class="sep">9</a></li>
<li><a class="okt">10</a></li>
<li><a class="nov">11</a></li>
<li><a class="dez">12</a></li>
</ul>
</div>
<div class="eventtablet">
<ul class="eevmonths">
<li><a class="jan">Jan</a></li>
<li><a class="feb">Feb</a></li>
<li><a class="mar">Mär</a></li>
<li><a class="apr">Apr</a></li>
<li><a class="mai">Mai</a></li>
<li><a class="jun">Jun</a></li>
<li><a class="jul">Jul</a></li>
<li><a class="aug">Aug</a></li>
<li><a class="sep">Sep</a></li>
<li><a class="okt">Okt</a></li>
<li><a class="nov">Nov</a></li>
<li><a class="dez">Dez</a></li>
</ul>
</div>
<div class="eventlarge">
<ul class="eevmonths">
<li><a class="jan">Januar</a></li>
<li><a class="feb">Februar</a></li>
<li><a class="mar">März</a></li>
<li><a class="apr">April</a></li>
<li><a class="mai">Mai</a></li>
<li><a class="jun">Juni</a></li>
<li><a class="jul">Juli</a></li>
<li><a class="aug">August</a></li>
<li><a class="sep">September</a></li>
<li><a class="okt">Oktober</a></li>
<li><a class="nov">November</a></li>
<li><a class="dez">Dezember</a></li>
</ul>
</div>
<div id="eevcontent">
<div class="eevdefault-text">Default Text</div>
<div class="eevcontent-jan eevhide">
<h3>Januar</h3>
</div>
<div class="eevcontent-feb eevhide">
<h3>Februar</h3>
</div>
<div class="eevcontent-mar eevhide">
<h3>März</h3>
</div>
<div class="eevcontent-apr eevhide">
<h3>April</h3>
</div>
<div class="eevcontent-mai eevhide">
<h3>Mai</h3>
</div>
<div class="eevcontent-jun eevhide">
<h3>Juni</h3>
</div>
<div class="eevcontent-jul eevhide">
<h3>Juli</h3>
</div>
<div class="eevcontent-aug eevhide">
<h3>August</h3>
</div>
<div class="eevcontent-sep eevhide">
<h3>September</h3>
</div>
<div class="eevcontent-okt eevhide">
<h3>Oktober</h3>
</div>
<div class="eevcontent-nov eevhide">
<h3>November</h3>
</div>
<div class="eevcontent-dez eevhide">
<h3>Dezember</h3>
</div>
</div>
JQUERY
$(function(){
$('ul.eevmonths a').on('click', function () {
$month = $(this).attr('class'),
$('.eevcontent-'+$month).siblings().addClass('eevhide');
$('.eevcontent-'+$month).removeClass('eevhide');
});
});
很简单,我想通过 jQuery 更改 div 的 class,单击 <a>
元素,具体取决于匹配的 ID
你应该知道我在 JavaScript/jQuery 方面没有经验,我的代码是一起用谷歌搜索的。
想法是月份列表和默认内容。如果您单击某个月份,它会显示特定月份的内容并隐藏默认内容。
我根据自己的情况做了一个codepen:http://codepen.io/garrthes/pen/oXqzdL
我抄袭了这段代码,但它在我的情况下不起作用:http://codepen.io/JoshBlackwood/pen/yoLBJ(非常感谢你,JoshBlackwood!)
我不知道这是否相关,但我想 运行 在 Wordpress 中使用它。 jQuery 库在 Wordpress 中加载。
我认为错误出在 JS 中...
非常感谢!
HTML
<div class="eventmobile">
<ul class="eevmonths">
<li><a href="#eevcontent">1</a></li>
<li><a href="#eevcontent">2</a></li>
<li><a href="#eevcontent">3</a></li>
<li><a href="#eevcontent">4</a></li>
<li><a href="#eevcontent">5</a></li>
<li><a href="#eevcontent">6</a></li>
<li><a href="#eevcontent">7</a></li>
<li><a href="#eevcontent">8</a></li>
<li><a href="#eevcontent">9</a></li>
<li><a href="#eevcontent">10</a></li>
<li><a href="#eevcontent">11</a></li>
<li><a href="#eevcontent">12</a></li>
</ul>
</div>
<div class="eventtablet">
<ul class="eevmonths">
<li><a href="#eevcontent">Jan</a></li>
<li><a href="#eevcontent">Feb</a></li>
<li><a href="#eevcontent">Mär</a></li>
<li><a href="#eevcontent">Apr</a></li>
<li><a href="#eevcontent">Mai</a></li>
<li><a href="#eevcontent">Jun</a></li>
<li><a href="#eevcontent">Jul</a></li>
<li><a href="#eevcontent">Aug</a></li>
<li><a href="#eevcontent">Sep</a></li>
<li><a href="#eevcontent">Okt</a></li>
<li><a href="#eevcontent">Nov</a></li>
<li><a href="#eevcontent">Dez</a></li>
</ul>
</div>
<div class="eventlarge">
<ul class="eevmonths">
<li><a href="#eevcontent">Januar</a></li>
<li><a href="#eevcontent">Februar</a></li>
<li><a href="#eevcontent">März</a></li>
<li><a href="#eevcontent">April</a></li>
<li><a href="#eevcontent">Mai</a></li>
<li><a href="#eevcontent">Juni</a></li>
<li><a href="#eevcontent">Juli</a></li>
<li><a href="#eevcontent">August</a></li>
<li><a href="#eevcontent">September</a></li>
<li><a href="#eevcontent">Oktober</a></li>
<li><a href="#eevcontent">November</a></li>
<li><a href="#eevcontent">Dezember</a></li>
</ul>
</div>
<div id="eevcontent">
<div class="eevdefault-text">Default Text</div>
<div class="eevcontent-jan eevhide">
<h3>Januar</h3>
</div>
<div class="eevcontent-feb eevhide">
<h3>Februar</h3>
</div>
<div class="eevcontent-mar eevhide">
<h3>März</h3>
</div>
<div class="eevcontent-apr eevhide">
<h3>April</h3>
</div>
<div class="eevcontent-mai eevhide">
<h3>Mai</h3>
</div>
<div class="eevcontent-jun eevhide">
<h3>Juni</h3>
</div>
<div class="eevcontent-jul eevhide">
<h3>Juli</h3>
</div>
<div class="eevcontent-aug eevhide">
<h3>August</h3>
</div>
<div class="eevcontent-sep eevhide">
<h3>September</h3>
</div>
<div class="eevcontent-okt eevhide">
<h3>Oktober</h3>
</div>
<div class="eevcontent-nov eevhide">
<h3>November</h3>
</div>
<div class="eevcontent-dez eevhide">
<h3>Dezember</h3>
</div>
</div>
CSS
@media only screen and (max-width: 450px){
.eventtablet{
display:none;
}
.eventlarge{
display:none;
}
}
@media only screen and (max-width: 1259px) and (min-width:451px){
.eventmobile{
display:none;
}
.eventlarge{
display:none;
}
}
@media only screen and (min-width: 1260px){
.eventmobile{
display:none;
}
.eventtablet{
display:none;
}
}
.eevhide {
display: none;
}
JS
$(document).ready(function ($) {
$('ul.eevmonths > a').click(function () {
var $this = $(this),
$id = $this.attr('sid'),
$class = '.' + $('.eevcontent-' + $id).attr('class').replace('eevhide', '');
$('.eevdefault-text').addClass('eevhide');
$('.eevcontent-' + $id).removeClass('eevhide');
$('div[class*=eevcontent]').not($class).addClass('eevhide');
});
});
好的,伙计,我想通了你的问题,我对 HTML/JQUERY 做了一些更改,因为它完全是一团糟。应该很容易理解,但如果您有任何问题,请随时提问
https://jsfiddle.net/bpjk8174/3/
HTML
<div class="eventmobile">
<ul class="eevmonths">
<li><a class="jan">1</a></li>
<li><a class="feb">2</a></li>
<li><a class="mar">3</a></li>
<li><a class="apr">4</a></li>
<li><a class="mai">5</a></li>
<li><a class="jun">6</a></li>
<li><a class="jul">7</a></li>
<li><a class="aug">8</a></li>
<li><a class="sep">9</a></li>
<li><a class="okt">10</a></li>
<li><a class="nov">11</a></li>
<li><a class="dez">12</a></li>
</ul>
</div>
<div class="eventtablet">
<ul class="eevmonths">
<li><a class="jan">Jan</a></li>
<li><a class="feb">Feb</a></li>
<li><a class="mar">Mär</a></li>
<li><a class="apr">Apr</a></li>
<li><a class="mai">Mai</a></li>
<li><a class="jun">Jun</a></li>
<li><a class="jul">Jul</a></li>
<li><a class="aug">Aug</a></li>
<li><a class="sep">Sep</a></li>
<li><a class="okt">Okt</a></li>
<li><a class="nov">Nov</a></li>
<li><a class="dez">Dez</a></li>
</ul>
</div>
<div class="eventlarge">
<ul class="eevmonths">
<li><a class="jan">Januar</a></li>
<li><a class="feb">Februar</a></li>
<li><a class="mar">März</a></li>
<li><a class="apr">April</a></li>
<li><a class="mai">Mai</a></li>
<li><a class="jun">Juni</a></li>
<li><a class="jul">Juli</a></li>
<li><a class="aug">August</a></li>
<li><a class="sep">September</a></li>
<li><a class="okt">Oktober</a></li>
<li><a class="nov">November</a></li>
<li><a class="dez">Dezember</a></li>
</ul>
</div>
<div id="eevcontent">
<div class="eevdefault-text">Default Text</div>
<div class="eevcontent-jan eevhide">
<h3>Januar</h3>
</div>
<div class="eevcontent-feb eevhide">
<h3>Februar</h3>
</div>
<div class="eevcontent-mar eevhide">
<h3>März</h3>
</div>
<div class="eevcontent-apr eevhide">
<h3>April</h3>
</div>
<div class="eevcontent-mai eevhide">
<h3>Mai</h3>
</div>
<div class="eevcontent-jun eevhide">
<h3>Juni</h3>
</div>
<div class="eevcontent-jul eevhide">
<h3>Juli</h3>
</div>
<div class="eevcontent-aug eevhide">
<h3>August</h3>
</div>
<div class="eevcontent-sep eevhide">
<h3>September</h3>
</div>
<div class="eevcontent-okt eevhide">
<h3>Oktober</h3>
</div>
<div class="eevcontent-nov eevhide">
<h3>November</h3>
</div>
<div class="eevcontent-dez eevhide">
<h3>Dezember</h3>
</div>
</div>
JQUERY
$(function(){
$('ul.eevmonths a').on('click', function () {
$month = $(this).attr('class'),
$('.eevcontent-'+$month).siblings().addClass('eevhide');
$('.eevcontent-'+$month).removeClass('eevhide');
});
});