I have list where I am inserting the image through jQuery.
$("#icon1").html('<img src="images/summary_icon_u.png" />');
This is my list
<ul>
<li data-menuanchor="firstPage" class="one">
<a href="#firstPage" class="cmIcon" id="icon1"></a>
</li>
<li data-menuanchor="secondPage" class="two">
<a href="#secondPage" class="cmIcon" id="icon2"></a>
</li>
</ul>
I have few navigation list like this. When each list is clicked, an 'active' class is called on.
My need is when I click the list, if the list has class 'active' then it should append a html or else it should append another html.
This is my code below I tried but not working.
$(document).ready(function() {
$('li.one').click(function() {
if ($(this).hasClass('active')) {
$("#icon1").html('<img src="images/summary_icon_u.png" />');
} else {
$("#icon1").html('<img src="images/summary_icon_c.png" />');
}
});
$('li.two').click(function() {
if ($(this).hasClass('active')) {
$("#icon2").html('<img src="images/audi_risk_u.png" />');
} else {
$("#icon2").html('<img src="images/audi_risk_c.png" />');
}
});
});
Thanks in advance.
You need to put your code in to a click handler for the li.one
element. Try this:
$(document).ready(function() {
$('li.one').click(function() {
if ($(this).hasClass('active')) {
$("#icon1").html('<img src="images/summary_icon_u.png" />');
} else {
$("#icon1").html('<img src="images/summary_icon_c.png" />');
}
});
});
Note that you can also shorten this code by using a ternary expression:
$(document).ready(function() {
$('li.one').click(function() {
$("#icon1").html('<img src="images/summary_icon_' + ($(this).hasClass('active') ? 'u' : 'c') + '.png" />');
});
});
Now that you've added your current HTML and JS code I can see that you can DRY up the code with a single event handler which traverses the DOM from the current li
to find the related a
element. Try this:
$(document).ready(function() {
$('li').click(function() {
$(this).find('a').html('<img src="images/summary_icon_' + ($(this).hasClass('active') ? 'u' : 'c') + '.png" />');
});
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With