Reputation: 364
How Do I maintain the selected value of the ul>li in the below code HTML Code
<ul class="paginationSize">
<li>SHOW:</li>
<li id="paginationClass" data-paginationValue="20" class=""><a href="#">20</a>
</li>
<li id="paginationClass" data-paginationValue="40" class=""><a href="#">40</a>
</li>
<li id="paginationClass" data-paginationValue="60" class=""><a href="#">60</a>
</li>
</ul>
jQuery Related to the PHP CODE
$(".paginationSize li").click(function(){
$(".active").removeClass("active");
$(this).addClass("active");
paginationSize = $(this).attr("data-paginationValue");
setGetParameter('pageSize',paginationSize);
});
setGetParameter Function
function setGetParameter(paramName, paramValue)
{
var url = window.location.href;
var hash = location.hash;
url = url.replace(hash, '');
if (url.indexOf(paramName + "=") >= 0)
{
var prefix = url.substring(0, url.indexOf(paramName));
var suffix = url.substring(url.indexOf(paramName));
suffix = suffix.substring(suffix.indexOf("=") + 1);
suffix = (suffix.indexOf("&") >= 0) ? suffix.substring(suffix.indexOf("&")) : "";
url = prefix + paramName + "=" + paramValue + suffix;
}
else
{
if (url.indexOf("?") < 0)
url += "?" + paramName + "=" + paramValue;
else
url += "&" + paramName + "=" + paramValue;
}
console.log(url);
window.location.href = url + hash;
}
I want to maintain the active class on selected option (i.e. If I select option 40 then after page refresh option 40 should be selected and default I have to set active on value 20)
Thanks in Advance
Upvotes: 2
Views: 237
Reputation: 12181
Here you go with a solution https://jsfiddle.net/geow8bzu/
if( localStorage.getItem('lastSelectedli') != null ){
$(".paginationSize li[data-paginationValue=" + localStorage.getItem('lastSelectedli') + "]").addClass('active');
}
$(".paginationSize li").click(function(){
$(".active").removeClass("active");
$(this).addClass("active");
paginationSize = $(this).attr("data-paginationValue");
localStorage.setItem('lastSelectedli', paginationSize);
//setGetParameter('pageSize',paginationSize);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="paginationSize">
<li>SHOW:</li>
<li data-paginationValue="20" class=""><a href="#">20</a>
</li>
<li data-paginationValue="40" class=""><a href="#">40</a>
</li>
<li data-paginationValue="60" class=""><a href="#">60</a>
</li>
</ul>
I've used localStorage
to store the last selected item.
Remove id="paginationClass"
, because id
should be unique.
Upvotes: 1