Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 我怎样才能把它变成一个函数?_Jquery_Css - Fatal编程技术网

Jquery 我怎样才能把它变成一个函数?

Jquery 我怎样才能把它变成一个函数?,jquery,css,Jquery,Css,.home、.dungeons等是名为navigationMenu的div中的标记。 我就是想不通,我可能会在页面上的其他东西上重复使用相同的逻辑。理想情况下,它将从单击的内容中获取一个值,并使用该值添加新类,这样,如果我添加了更多链接,它将自动工作。假设每个单击类只有一个类,并且\bg除了这些类之外没有其他类,您可以使用必要的一项: $(".home").click(function(){ $("#bg").removeClass("dungeonsbg bgsbg arenasbg

.home、.dungeons等是名为navigationMenu的div中的标记。
我就是想不通,我可能会在页面上的其他东西上重复使用相同的逻辑。理想情况下,它将从单击的内容中获取一个值,并使用该值添加新类,这样,如果我添加了更多链接,它将自动工作。

假设每个单击类只有一个类,并且
\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');
});