У меня проблема с моей Jquery, я хочу прокручивать элемент только в том случае, если элемент, если он видимый, если он скрыт, не прокручивается. Вы можете мне помочь? Большое спасибо.
JQuery:
$('#menu').click(function(e){
e.preventDefault();
$('#nav').slideToggle('300');
if($("#nav").css('visibility') == 'hidden') {
}else{
$('#nav h4 a').trigger('click');
$('html, body').animate({
scrollTop: $("#nav").offset().top
}, 1000);
}
HTML:
<div id="header" data-role="header" data-position="fixed" data-theme="b" style="border:none;" >
<div class="ui-btn-right" data-role="controlgroup" data-type="horizontal">
<a id="menu" href="#"><img width="37px" src="/css/menu.png" alt="menu" /></a> <!-- icon to show element or hide -->
</div>
</div>
<div id="nav" data-role="collapsible" data-theme="b"> <!-- Code for element where to scroll -->
<h4>Menu</h4>
<div data-role="listview" data-inset="true">
..content
</div>
</div>
Попробуй это
$('#menu').click(function(e){
e.preventDefault();
$('#nav').slideToggle('300');
if($('#nav').is(':visible') ) // if true means
{
$('#nav h4 a').trigger('click');
$('html, body').animate({
scrollTop: $("#nav").offset().top
}, 1000);
}
});
console.log($('#nav').is(':visible') )//it will return true or false