我有一个小菜单,点击该菜单即可将html
文件加载到div中。
我希望菜单项在单击时被包裹在一个跨度(或div)中,以便我可以控制样式。如果单击另一个菜单项,则跨度应消失并放在另一个单击的菜单项周围。
我对此很迷茫,除了下面的代码片段之外,我不太确定如何处理此问题。同样,必须用<span>
换行的文本也可以不同。
请参见摘要。
$(function() {
$('#om').click(function(e) {
$('.hestetekst').load('html/tekst.shtml');
e.preventDefault();
});
$('#resul').click(function(e) {
$('.hestetekst').load('html/resul.html');
e.preventDefault();
});
$('#billeder').click(function(e) {
$('.hestetekst').load('html/billeder.html');
e.preventDefault();
});
$('#video').click(function(e) {
$('.hestetekst').load('html/video.html');
e.preventDefault();
});
$('#afkom').click(function(e) {
$('.hestetekst').load('html/afkom.html');
e.preventDefault();
});
$('#presse').click(function(e) {
$('.hestetekst').load('html/presse.html');
e.preventDefault();
});
});
$.ajaxSetup({
'beforeSend': function(xhr) {
xhr.overrideMimeType('text/html; charset=ISO-8859-1');
}
});
$(document).on('click', '.hesteundertop a', function(e) {
$(this).parent().siblings().removeClass('active');
$(this).parent().addClass('active');
});
.active a {
background: green;
width: auto;
color: grey;
}
.hesteundertop a:link {
text-decoration: none;
color: #2E181A;
display: inline-block;
}
.hesteundertop a:visited {
text-decoration: none;
color: #2E181A;
display: inline-block;
}
.hesteundertop a:active {
text-decoration: none;
color: grey;
display: inline-block;
}
.hesteundertop a:hover {
text-decoration: underline;
color: grey;
display: inline-block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="hesteundertop">
<p><a id="om" href="#">Om Corona</a> | <a id="resul" href="#">Resultater</a> | <a id="billeder" href="#">Billeder</a> | <a id="video" href="#">Video</a> | <a id="afkom" href="#">Afkom</a> | <a id="presse" href="#">Presse</a></p>
</div>
<div class="hestetekst">
<!--#include virtual="html/tekst.shtml"--><br />
<hr class="hr75" />
</div>
答案 0 :(得分:2)
$('.hesteundertop .active a').unwrap( )
$(this).wrap("<span class='active'></span>");
上面的代码将用跨度包装单击的链接并将其解包。
我认为这就是您想要的。
$(function() {
$('#om').click(function(e) {
$('.hestetekst').load('html/tekst.shtml');
e.preventDefault();
});
$('#resul').click(function(e) {
$('.hestetekst').load('html/resul.html');
e.preventDefault();
});
$('#billeder').click(function(e) {
$('.hestetekst').load('html/billeder.html');
e.preventDefault();
});
$('#video').click(function(e) {
$('.hestetekst').load('html/video.html');
e.preventDefault();
});
$('#afkom').click(function(e) {
$('.hestetekst').load('html/afkom.html');
e.preventDefault();
});
$('#presse').click(function(e) {
$('.hestetekst').load('html/presse.html');
e.preventDefault();
});
});
$.ajaxSetup({
'beforeSend': function(xhr) {
xhr.overrideMimeType('text/html; charset=ISO-8859-1');
}
});
$(document).on('click', '.hesteundertop a', function(e) {
$('.hesteundertop .active a').unwrap( )
$(this).wrap("<span class='active'></span>");
});
.active a {
background: green;
width: auto;
color: grey;
}
.hesteundertop a:link {
text-decoration: none;
color: #2E181A;
display: inline-block;
}
.hesteundertop a:visited {
text-decoration: none;
color: #2E181A;
display: inline-block;
}
.hesteundertop a:active {
text-decoration: none;
color: grey;
display: inline-block;
}
.hesteundertop a:hover {
text-decoration: underline;
color: grey;
display: inline-block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="hesteundertop">
<p><a id="om" href="#">Om Corona</a> | <a id="resul" href="#">Resultater</a> | <a id="billeder" href="#">Billeder</a> | <a id="video" href="#">Video</a> | <a id="afkom" href="#">Afkom</a> | <a id="presse" href="#">Presse</a></p>
</div>
<div class="hestetekst">
<!--#include virtual="html/tekst.shtml"--><br />
<hr class="hr75" />
</div>
答案 1 :(得分:1)
您可以一次清除所有元素中的active
,然后将其添加到当前项目中。
$('.hesteundertop a').on('click', function(e) {
$('.hesteundertop a').removeClass('active');
$(this).addClass('active');
});