Jquery 我怎样才能把它变成一个函数?
.home、.dungeons等是名为navigationMenu的div中的标记。Jquery 我怎样才能把它变成一个函数?,jquery,css,Jquery,Css,.home、.dungeons等是名为navigationMenu的div中的标记。 我就是想不通,我可能会在页面上的其他东西上重复使用相同的逻辑。理想情况下,它将从单击的内容中获取一个值,并使用该值添加新类,这样,如果我添加了更多链接,它将自动工作。假设每个单击类只有一个类,并且\bg除了这些类之外没有其他类,您可以使用必要的一项: $(".home").click(function(){ $("#bg").removeClass("dungeonsbg bgsbg arenasbg
我就是想不通,我可能会在页面上的其他东西上重复使用相同的逻辑。理想情况下,它将从单击的内容中获取一个值,并使用该值添加新类,这样,如果我添加了更多链接,它将自动工作。假设每个单击类只有一个类,并且
\bg
除了这些类之外没有其他类,您可以使用必要的一项:
$(".home").click(function(){
$("#bg").removeClass("dungeonsbg bgsbg arenasbg specgearbg").addClass("homebg");
});
$(".dungeons").click(function(){
$("#bg").removeClass("homebg bgsbg arenasbg specgearbg").addClass("dungeonsbg");
});
$(".arenas").click(function(){
$("#bg").removeClass("homebg bgsbg dungeonssbg specgearbg").addClass("arenasbg");
});
$(".bgs").click(function(){
$("#bg").removeClass("homebg dungeonsbg arenasbg specgearbg").addClass("bgsbg");
});
$(".specgear").click(function(){
$("#bg").removeClass("homebg bgsbg arenasbg specgearbg").addClass("specgearbg");
});
$(".home, .dungeons, .arenas, .bgs, .specgear").click(function(){
$("#bg").attr('class', $(this).attr('class') + 'bg');
});
假设所有相关元素只有一个类:
$(".home, .dungeons, .arenas, .bgs, .specgear").click(function(){
$('#bg')[0].className = this.className + 'bg';
});
另一个解决方案可能是这样的:
$('.home, .dungeons, .arenas, .bgs, .specgear').click(function () {
document.getElementById('bg').className = this.className + 'bg';
});
这确实假设#bg没有任何类,锚只有一个类。逻辑是什么?单击具有特定类的元素时,它应该从
#bg
中删除所有(?)类,并为其指定所单击元素的特定类?单击的元素是否也有其他类,或者只是列出的五个类中的一个?这非常适合我的需要。只是一个问题,[0]的作用是什么?这是选择#bg的第一个实例吗?如果是这样的话,既然页面上只有一个id实例,[0]为什么要这样做呢?否,[0]是打开jQuery包装以获取DOM HTMLElement,以便访问className属性,这样我们就可以用homebg
,dungeonsbg
等覆盖所有类。本质上与@deceze所做的相同,不过他直接得到了DOM元素。
$('#navigationMenu a').click(function() {
$('#bg').removeClass().addClass($(this).attr('class') + 'bg');
});