Остановить скольжение jQuery при нажатии на следующую страницу - PullRequest
0 голосов
/ 15 сентября 2011

Я не знаю, возможно ли это.У меня есть меню слайдов JQuery, и я не хочу, чтобы слайдер закрывался при нажатии на одну из ссылок в слайд-меню.Я хочу, чтобы он оставался открытым, когда я нажимаю на целевую страницу ссылки.

Вот мой код: index.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Advice center</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-5">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>

<script type="text/javascript">
$(document).ready(function(){
        $("#flip_1").click(function(){
            $("#panel_1").slideToggle("slow");
        });
    });
</script>

<style type="text/css">
.nodisplay{
 display:none; 
}
</style>
</head>
<body>
<ul>
    <li><a href="page1.html">Page 1</a></li>
    <li><a href="page2.html">Page 2</a></li>
    <li><a href="page3.html">Page 3</a></li>
    <li><a href="page4.html">Page 4</a></li>

    <li id="flip_1"> <span>Slide here</span></li>
        <div id="panel_1" class="nodisplay">
            <ul>
                <li><a href="section1.html">section 1</a></li>
                <li><a href="section2.html">section 2</a></li>

              </ul> 
        </div>  

       <li><a href="">bottom 1</a></li>
       <li><a href="">bottom 2</a></li>
     </ul>
</body>
</html>

Вот один изстраницы, связанные с section1.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Advice center</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-5">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>

<script type="text/javascript">
$(document).ready(function(){
        $("#flip_1").click(function(){
            $("#panel_1").slideToggle("slow");
        });     
       });
</script>

<style type="text/css">
.nodisplay{
 display:none; 
}
</style>

</head>

<body>

<ul>
    <li><a href="page1.html">Page 1</a></li>
    <li><a href="page2.html">Page 2</a></li>
    <li><a href="page3.html">Page 3</a></li>
    <li><a href="page4.html">Page 4</a></li>

    <li id="flip_1"> <span>Slide here</span></li>
        <div id="panel_1" class="nodisplay">
            <ul>
                <li><a href="section1.html">section 1</a></li>
                <li><a href="section2.html">section 2</a></li>

              </ul> 
        </div>  

       <li><a href="">bottom 1</a></li>
       <li><a href="">bottom 2</a></li>
     </ul>

Welcome to section 1
</body>
</html>

И третья страница ниже: section2.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Advice center</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-5">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>

<script type="text/javascript">
$(document).ready(function(){
        $("#flip_1").click(function(){
            $("#panel_1").slideToggle("slow");
        });

    });
</script>

<style type="text/css">
.nodisplay{
 display:none; 
}
</style>

</head>

<body>

<ul>
    <li><a href="page1.html">Page 1</a></li>
    <li><a href="page2.html">Page 2</a></li>
    <li><a href="page3.html">Page 3</a></li>
    <li><a href="page4.html">Page 4</a></li>

    <li id="flip_1"> <span>Slide here</span></li>
        <div id="panel_1" class="nodisplay">
            <ul>
                <li><a href="section1.html">section 1</a></li>
                <li><a href="section2.html">section 2</a></li>

              </ul> 
        </div>  

       <li><a href="">bottom 1</a></li>
       <li><a href="">bottom 2</a></li>
     </ul>

This is section 2 (TWO) page
</body>
</html>

Ответы [ 2 ]

0 голосов
/ 15 сентября 2011

На внутренних ссылках используйте хеш для их идентификации

<a href="section1.html#panel">Section 1</a>

Затем onPageLoad вы можете проверить, есть ли хеш, и использовать его для открытия:

if(window.location.hash == "#panel") $("#panel_1").slideDown();

Также небольшое исправление в вашем коде: поместите этот div в li

<li id="flip_1"><span>Slide here</span>
    <div id="panel_1" class="nodisplay">
        <ul>
            <li><a href="section1.html">section 1</a></li>
            <li><a href="section2.html">section 2</a></li>
        </ul> 
    </div> 
</li>

А затем используйте это для переключения:

$("#flip_1 span").click(function(){
        $("#panel_1").slideToggle("slow");
});
0 голосов
/ 15 сентября 2011

Попробуйте следующее, если нажата одна из ваших ссылок (вам понадобится if / else в привязке вашего события .click):

$("#panel_1").stop();
...