Reputation: 15
My website is here : http://www.xestudio.xco.kr and if you click on the cog button on the left panel, you can see the situation.
To explain my situation, I will simply say, I have this website that's called 'Website Builder' in my mind, and the crucial functionality of the website is to easily manipulate all the options by clicking on the user interface.
I have created numerous buttons for each different header style, body style, footer style, etc, that activates when click on those buttons in order to change the style of the website.
The problem is that, for those function to work, i have to put in all the possibility into consideration, meaning that the codes must include
'removeClass header type 1,2,3,4,5,6,7,8' AND 'addClass header type 9' so on, the list goes on.
Is there anyway I can simplify these codes? im afraid my website will go crash if i don't do something about it. lol
and here are the exact codes that mywebsite uses.
<img src="images/header_type1.png"
onclick="jQuery('.xe-clearfix').addClass('header_type_1',200),
jQuery('.xe-clearfix').removeClass('header_type_2',200),
jQuery('.xe-clearfix').removeClass('header_type_3',200),
jQuery('.xe-clearfix').removeClass('header_type_4',200),
jQuery('.fixed_header .header_wrap').addClass('header_type_1',200),
jQuery('.fixed_header .header_wrap').removeClass('header_type_2',200),
jQuery('.fixed_header .header_wrap').removeClass('header_type_3',200),
jQuery('.fixed_header .header_wrap').removeClass('header_type_4',200),
jQuery('.gnb>ul>li').addClass('header_type_1',200),
jQuery('.gnb>ul>li').removeClass('header_type_2',200),
jQuery('.gnb>ul>li').removeClass('header_type_3',200),
jQuery('.gnb>ul>li').removeClass('header_type_4',200),
">
<img src="images/header_type2.png"
onclick=" jQuery('.xe-clearfix').addClass('header_type_2',200),
jQuery('.xe-clearfix').removeClass('header_type_1',200),
jQuery('.xe-clearfix').removeClass('header_type_3',200),
jQuery('.xe-clearfix').removeClass('header_type_4',200),
jQuery('.fixed_header .header_wrap').addClass('header_type_2',200),
jQuery('.fixed_header .header_wrap').removeClass('header_type_1',200),
jQuery('.fixed_header .header_wrap').removeClass('header_type_3',200),
jQuery('.fixed_header .header_wrap').removeClass('header_type_4',200),
jQuery('.gnb>ul>li').addClass('header_type_2',200),
jQuery('.gnb>ul>li').removeClass('header_type_1',200),
jQuery('.gnb>ul>li').removeClass('header_type_3',200),
jQuery('.gnb>ul>li').removeClass('header_type_4',200)
">
<img src="images/header_type3.png"
onclick="
jQuery('.xe-clearfix').removeClass('header_type_1',200),
jQuery('.xe-clearfix').removeClass('header_type_2',200),
jQuery('.xe-clearfix').removeClass('header_type_4',200),
jQuery('.xe-clearfix').addClass('header_type_3',200),
jQuery('.fixed_header .header_wrap').addClass('header_type_3',200),
jQuery('.fixed_header .header_wrap').removeClass('header_type_1',200),
jQuery('.fixed_header .header_wrap').removeClass('header_type_2',200),
jQuery('.fixed_header .header_wrap').removeClass('header_type_4',200),
jQuery('.gnb>ul>li').addClass('header_type_3',200),
jQuery('.gnb>ul>li').removeClass('header_type_1',200),
jQuery('.gnb>ul>li').removeClass('header_type_2',200),
jQuery('.gnb>ul>li').removeClass('header_type_4',200)" width="100px">
<img src="images/header_type4.png"
onclick="jQuery('.xe-clearfix').addClass('header_type_4',200),
jQuery('.xe-clearfix').removeClass('header_type_1',200),
jQuery('.xe-clearfix').removeClass('header_type_2',200),
jQuery('.xe-clearfix').removeClass('header_type_3',200),
jQuery('.fixed_header .header_wrap').addClass('header_type_4',200),
jQuery('.fixed_header .header_wrap').removeClass('header_type_1',200),
jQuery('.fixed_header .header_wrap').removeClass('header_type_2',200),
jQuery('.fixed_header .header_wrap').removeClass('header_type_3',200),
jQuery('.gnb>ul>li').addClass('header_type_4',200),
jQuery('.gnb>ul>li').removeClass('header_type_1',200),
jQuery('.gnb>ul>li').removeClass('header_type_2',200),
jQuery('.gnb>ul>li').removeClass('header_type_3',200),
jQuery('.#gnb .active_li').addClass('header_type_2',200),
jQuery('.#gnb .active_li').removeClass('header_type_1',200),
jQuery('.gnb>ul>li:last-childe').addClass('header_type_2',200),
jQuery('.gnb>ul>li:last-child').removeClass('header_type_1',200)
" width="100px">
<br>
<button onclick="jQuery('.header').addClass('text_type_1',200),
jQuery('.header').removeClass('text_type_2',200)"></button>
<button onclick="jQuery('.header').addClass('text_type_2',200),
jQuery('.header').removeClass('text_type_1',200)"></button>
<br>
<button onclick="jQuery('.gnb>ul>li').addClass('menu_type_1',200),
jQuery('.gnb>ul>li').removeClass('menu_type_2',200),
jQuery('.#gnb .active_li').addClass('menu_type_1',200),
jQuery('.#gnb .active_li').removeClass('menu_type_2',200)
jQuery('.gnb>ul>li:last-childe').addClass('menu_type_1',200),
jQuery('.gnb>ul>li:last-child').removeClass('menu_type_2',200)"></button>
Upvotes: 0
Views: 85
Reputation: 178403
This should work for the images:
$("img[class^='type_']").on("click",function() {
var curClass = "header_type_"+this.className.split("_")[1];
$('.xe-clearfix, .fixed_header, .header_wrap, .gnb>ul>li')
.not(curClass).removeClass()
.addClass(curClass);
if (curClass == "header_type_4") {
$('.gnb .active_li, .gnb>ul>li:last-child').addClass('header_type_2');
$('.gnb .active_li, .gnb>ul>li:last-child').removeClass('header_type_1');
}
});
using
<img src="images/header_type1.png" class="type_1" />
<img src="images/header_type2.png" class="type_2" />
<img src="images/header_type3.png" class="type_3" />
<img src="images/header_type4.png" class="type_4" />
Upvotes: 0
Reputation: 3294
As stated on jQuery website:
.removeClass( [className ] )
className Type: String
One or more space-separated classes to be removed from the class attribute of each matched element.
So you can merge them in:
jQuery('.xeclearfix').addClass('header_type_1').removeClass('header_type_2 header_type_3 header_type_4');
jQuery('.fixed_header .header_wrap').addClass('header_type_1').removeClass('header_type_2 header_type_3 header_type_4');
jQuery('.gnb>ul>li').addClass('header_type_1').removeClass('header_type_2 header_type_3 header_type_4');
I'm sure you could get it more clean than this, but we need more info about your code.
Upvotes: 1
Reputation: 3730
HTML
... onclick="header(1);" ...
JS (in <script> tags, or .js
file)
function header(activate) {
jQuery('.xe-clearfix')
.removeClass('header_type_1 header_type_2 header_type_3 header_type_4')
.addClass('header_type_' + activate),
jQuery('.fixed_header .header_wrap')
.removeClass('header_type_1 header_type_2 header_type_3 header_type_4')
.addClass('header_type_' + activate),
jQuery('.gnb>ul>li')
.removeClass('header_type_1 header_type_2 header_type_3 header_type_4')
.addClass('header_type_' + activate),
}
Upvotes: 0