How to convert a list of anchor links into a select dropdown that operates changing tabs on change of option?
I have a list of anchor links that successfully fades in and out tab content on click.
I need to convert this list into a select drop-down at mobile and I'm not sure how to go about updating the current setup to function the same way except the list would be in drop-down format.
Is there a simple way to do this?
Here is a JSFiddle
JS:
$("#customer-content .group").hide(); // Initially hide all content
$("#customer-tabs li:first").attr("id","current"); // Activate first tab
$("#customer-content .group:first").fadeIn(); // Show first tab content
$('#customer-tabs li a').click(function(e)
e.preventDefault();
if ($(this).attr("id") == "current") //detection for current tab
return
else
$("#customer-content .group").hide(); //Hide all content
$("#customer-tabs li").attr("id",""); //Reset id's
$(this).parent().attr("id","current"); // Activate this
$($(this).attr('href')).fadeIn(); // Show content for current tab
);
HTML
<ul id="customer-tabs" class="cs-tabs">
<li><a href="#link-1">Link 1</a></li>
<li><a href="#link-2">Link 2</a></li>
<li><a href="#link-3">Link 3</a></li>
</ul>
<div id="customer-content">
<div class="group" id="link-1">
<h2>Title</h2>
<div class="customer-accordion">
Content
</div>
</div>
<div class="group" id="link-2">
<h2>Title 2</h2>
<div class="customer-accordion">
Content 2
</div>
</div>
<div class="group" id="link-3">
<h2>Title 3</h2>
<div class="customer-accordion">
Content 3
</div>
</div>
</div>
javascript jquery html
add a comment |
I have a list of anchor links that successfully fades in and out tab content on click.
I need to convert this list into a select drop-down at mobile and I'm not sure how to go about updating the current setup to function the same way except the list would be in drop-down format.
Is there a simple way to do this?
Here is a JSFiddle
JS:
$("#customer-content .group").hide(); // Initially hide all content
$("#customer-tabs li:first").attr("id","current"); // Activate first tab
$("#customer-content .group:first").fadeIn(); // Show first tab content
$('#customer-tabs li a').click(function(e)
e.preventDefault();
if ($(this).attr("id") == "current") //detection for current tab
return
else
$("#customer-content .group").hide(); //Hide all content
$("#customer-tabs li").attr("id",""); //Reset id's
$(this).parent().attr("id","current"); // Activate this
$($(this).attr('href')).fadeIn(); // Show content for current tab
);
HTML
<ul id="customer-tabs" class="cs-tabs">
<li><a href="#link-1">Link 1</a></li>
<li><a href="#link-2">Link 2</a></li>
<li><a href="#link-3">Link 3</a></li>
</ul>
<div id="customer-content">
<div class="group" id="link-1">
<h2>Title</h2>
<div class="customer-accordion">
Content
</div>
</div>
<div class="group" id="link-2">
<h2>Title 2</h2>
<div class="customer-accordion">
Content 2
</div>
</div>
<div class="group" id="link-3">
<h2>Title 3</h2>
<div class="customer-accordion">
Content 3
</div>
</div>
</div>
javascript jquery html
add a comment |
I have a list of anchor links that successfully fades in and out tab content on click.
I need to convert this list into a select drop-down at mobile and I'm not sure how to go about updating the current setup to function the same way except the list would be in drop-down format.
Is there a simple way to do this?
Here is a JSFiddle
JS:
$("#customer-content .group").hide(); // Initially hide all content
$("#customer-tabs li:first").attr("id","current"); // Activate first tab
$("#customer-content .group:first").fadeIn(); // Show first tab content
$('#customer-tabs li a').click(function(e)
e.preventDefault();
if ($(this).attr("id") == "current") //detection for current tab
return
else
$("#customer-content .group").hide(); //Hide all content
$("#customer-tabs li").attr("id",""); //Reset id's
$(this).parent().attr("id","current"); // Activate this
$($(this).attr('href')).fadeIn(); // Show content for current tab
);
HTML
<ul id="customer-tabs" class="cs-tabs">
<li><a href="#link-1">Link 1</a></li>
<li><a href="#link-2">Link 2</a></li>
<li><a href="#link-3">Link 3</a></li>
</ul>
<div id="customer-content">
<div class="group" id="link-1">
<h2>Title</h2>
<div class="customer-accordion">
Content
</div>
</div>
<div class="group" id="link-2">
<h2>Title 2</h2>
<div class="customer-accordion">
Content 2
</div>
</div>
<div class="group" id="link-3">
<h2>Title 3</h2>
<div class="customer-accordion">
Content 3
</div>
</div>
</div>
javascript jquery html
I have a list of anchor links that successfully fades in and out tab content on click.
I need to convert this list into a select drop-down at mobile and I'm not sure how to go about updating the current setup to function the same way except the list would be in drop-down format.
Is there a simple way to do this?
Here is a JSFiddle
JS:
$("#customer-content .group").hide(); // Initially hide all content
$("#customer-tabs li:first").attr("id","current"); // Activate first tab
$("#customer-content .group:first").fadeIn(); // Show first tab content
$('#customer-tabs li a').click(function(e)
e.preventDefault();
if ($(this).attr("id") == "current") //detection for current tab
return
else
$("#customer-content .group").hide(); //Hide all content
$("#customer-tabs li").attr("id",""); //Reset id's
$(this).parent().attr("id","current"); // Activate this
$($(this).attr('href')).fadeIn(); // Show content for current tab
);
HTML
<ul id="customer-tabs" class="cs-tabs">
<li><a href="#link-1">Link 1</a></li>
<li><a href="#link-2">Link 2</a></li>
<li><a href="#link-3">Link 3</a></li>
</ul>
<div id="customer-content">
<div class="group" id="link-1">
<h2>Title</h2>
<div class="customer-accordion">
Content
</div>
</div>
<div class="group" id="link-2">
<h2>Title 2</h2>
<div class="customer-accordion">
Content 2
</div>
</div>
<div class="group" id="link-3">
<h2>Title 3</h2>
<div class="customer-accordion">
Content 3
</div>
</div>
</div>
javascript jquery html
javascript jquery html
edited Nov 13 '18 at 12:42
RobG
97.3k19104145
97.3k19104145
asked Nov 13 '18 at 12:25
user2498890user2498890
55331138
55331138
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
You can find relevant .group
by index, So use .index()
to finding index of selected option and use .eq()
to select .group
by index.
$("#customer-content .group").hide().first().fadeIn();
$('#customer-tabs').change(function(e)
var i = $(this).find(":selected").index();
$("#customer-content .group").hide().eq(i).fadeIn();
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="customer-tabs">
<option selected>Link 1</option>
<option>Link 2</option>
<option>Link 3</option>
</select>
<div id="customer-content">
<div class="group" id="link-1">
<h2>Title</h2>
<div class="customer-accordion">
Content
</div>
</div>
<div class="group" id="link-2">
<h2>Title 2</h2>
<div class="customer-accordion">
Content 2
</div>
</div>
<div class="group" id="link-3">
<h2>Title 3</h2>
<div class="customer-accordion">
Content 3
</div>
</div>
</div>
Thank you for your answer, I appreciate you taking the time to share. I'll take a look at this now.
– user2498890
Nov 13 '18 at 12:47
This worked perfectly, thanks for your answer.
– user2498890
Nov 13 '18 at 14:29
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53280970%2fhow-to-convert-a-list-of-anchor-links-into-a-select-dropdown-that-operates-chang%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
You can find relevant .group
by index, So use .index()
to finding index of selected option and use .eq()
to select .group
by index.
$("#customer-content .group").hide().first().fadeIn();
$('#customer-tabs').change(function(e)
var i = $(this).find(":selected").index();
$("#customer-content .group").hide().eq(i).fadeIn();
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="customer-tabs">
<option selected>Link 1</option>
<option>Link 2</option>
<option>Link 3</option>
</select>
<div id="customer-content">
<div class="group" id="link-1">
<h2>Title</h2>
<div class="customer-accordion">
Content
</div>
</div>
<div class="group" id="link-2">
<h2>Title 2</h2>
<div class="customer-accordion">
Content 2
</div>
</div>
<div class="group" id="link-3">
<h2>Title 3</h2>
<div class="customer-accordion">
Content 3
</div>
</div>
</div>
Thank you for your answer, I appreciate you taking the time to share. I'll take a look at this now.
– user2498890
Nov 13 '18 at 12:47
This worked perfectly, thanks for your answer.
– user2498890
Nov 13 '18 at 14:29
add a comment |
You can find relevant .group
by index, So use .index()
to finding index of selected option and use .eq()
to select .group
by index.
$("#customer-content .group").hide().first().fadeIn();
$('#customer-tabs').change(function(e)
var i = $(this).find(":selected").index();
$("#customer-content .group").hide().eq(i).fadeIn();
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="customer-tabs">
<option selected>Link 1</option>
<option>Link 2</option>
<option>Link 3</option>
</select>
<div id="customer-content">
<div class="group" id="link-1">
<h2>Title</h2>
<div class="customer-accordion">
Content
</div>
</div>
<div class="group" id="link-2">
<h2>Title 2</h2>
<div class="customer-accordion">
Content 2
</div>
</div>
<div class="group" id="link-3">
<h2>Title 3</h2>
<div class="customer-accordion">
Content 3
</div>
</div>
</div>
Thank you for your answer, I appreciate you taking the time to share. I'll take a look at this now.
– user2498890
Nov 13 '18 at 12:47
This worked perfectly, thanks for your answer.
– user2498890
Nov 13 '18 at 14:29
add a comment |
You can find relevant .group
by index, So use .index()
to finding index of selected option and use .eq()
to select .group
by index.
$("#customer-content .group").hide().first().fadeIn();
$('#customer-tabs').change(function(e)
var i = $(this).find(":selected").index();
$("#customer-content .group").hide().eq(i).fadeIn();
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="customer-tabs">
<option selected>Link 1</option>
<option>Link 2</option>
<option>Link 3</option>
</select>
<div id="customer-content">
<div class="group" id="link-1">
<h2>Title</h2>
<div class="customer-accordion">
Content
</div>
</div>
<div class="group" id="link-2">
<h2>Title 2</h2>
<div class="customer-accordion">
Content 2
</div>
</div>
<div class="group" id="link-3">
<h2>Title 3</h2>
<div class="customer-accordion">
Content 3
</div>
</div>
</div>
You can find relevant .group
by index, So use .index()
to finding index of selected option and use .eq()
to select .group
by index.
$("#customer-content .group").hide().first().fadeIn();
$('#customer-tabs').change(function(e)
var i = $(this).find(":selected").index();
$("#customer-content .group").hide().eq(i).fadeIn();
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="customer-tabs">
<option selected>Link 1</option>
<option>Link 2</option>
<option>Link 3</option>
</select>
<div id="customer-content">
<div class="group" id="link-1">
<h2>Title</h2>
<div class="customer-accordion">
Content
</div>
</div>
<div class="group" id="link-2">
<h2>Title 2</h2>
<div class="customer-accordion">
Content 2
</div>
</div>
<div class="group" id="link-3">
<h2>Title 3</h2>
<div class="customer-accordion">
Content 3
</div>
</div>
</div>
$("#customer-content .group").hide().first().fadeIn();
$('#customer-tabs').change(function(e)
var i = $(this).find(":selected").index();
$("#customer-content .group").hide().eq(i).fadeIn();
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="customer-tabs">
<option selected>Link 1</option>
<option>Link 2</option>
<option>Link 3</option>
</select>
<div id="customer-content">
<div class="group" id="link-1">
<h2>Title</h2>
<div class="customer-accordion">
Content
</div>
</div>
<div class="group" id="link-2">
<h2>Title 2</h2>
<div class="customer-accordion">
Content 2
</div>
</div>
<div class="group" id="link-3">
<h2>Title 3</h2>
<div class="customer-accordion">
Content 3
</div>
</div>
</div>
$("#customer-content .group").hide().first().fadeIn();
$('#customer-tabs').change(function(e)
var i = $(this).find(":selected").index();
$("#customer-content .group").hide().eq(i).fadeIn();
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="customer-tabs">
<option selected>Link 1</option>
<option>Link 2</option>
<option>Link 3</option>
</select>
<div id="customer-content">
<div class="group" id="link-1">
<h2>Title</h2>
<div class="customer-accordion">
Content
</div>
</div>
<div class="group" id="link-2">
<h2>Title 2</h2>
<div class="customer-accordion">
Content 2
</div>
</div>
<div class="group" id="link-3">
<h2>Title 3</h2>
<div class="customer-accordion">
Content 3
</div>
</div>
</div>
answered Nov 13 '18 at 12:45
MohammadMohammad
15.4k123361
15.4k123361
Thank you for your answer, I appreciate you taking the time to share. I'll take a look at this now.
– user2498890
Nov 13 '18 at 12:47
This worked perfectly, thanks for your answer.
– user2498890
Nov 13 '18 at 14:29
add a comment |
Thank you for your answer, I appreciate you taking the time to share. I'll take a look at this now.
– user2498890
Nov 13 '18 at 12:47
This worked perfectly, thanks for your answer.
– user2498890
Nov 13 '18 at 14:29
Thank you for your answer, I appreciate you taking the time to share. I'll take a look at this now.
– user2498890
Nov 13 '18 at 12:47
Thank you for your answer, I appreciate you taking the time to share. I'll take a look at this now.
– user2498890
Nov 13 '18 at 12:47
This worked perfectly, thanks for your answer.
– user2498890
Nov 13 '18 at 14:29
This worked perfectly, thanks for your answer.
– user2498890
Nov 13 '18 at 14:29
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53280970%2fhow-to-convert-a-list-of-anchor-links-into-a-select-dropdown-that-operates-chang%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown