1

初めてのプログラマーはこちら。構築中の Web サイトに追加しようとしている jQuery に少し問題があります。コードの問題を見つけることができませんが、関連するリンクをクリックすると、URL の末尾に # が追加されるだけです。ここで何が欠けていますか?

ありがとう。コードは次のとおりです。

JavaScript:

$(document).ready(function(){
$('.ShowHideButton').click(function(){
    $('.MenuBar').slideToggle('slow');
});
});

HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<script type="text/javascript" src="NavMenu.js"></script>
<link type="text/css" rel="stylesheet" href="common.css">

<title>Test Room, North Wall</title>

<link rel="apple-touch-icon" href="apple-touch-icon.png">
<link rel="shortcut icon" href="Icons/Favicon.PNG" type="image/x-icon" /> 

</head>

<div class="Wall">
    <img src="Rooms/NorthBlank.JPG" width = 100% />
</div>

<div class="Tray">
    <div class="SlideBar">
        <div class="ShowHideButton">
            <a href = "#"><img src="Icons/Toggle.png" /></a>
        </div>
    </div>

    <div class="MenuBar">
        <ul>
            <li><a href = "TestWest.htm"><img src="Icons/NavLeft.png" /></a></li>
            <li><img src="Icons/Info.PNG" /></li>
            <li><a href = "TestDoor.htm"><img src="Icons/Door.PNG" /></a></li>
            <li><a href = "TestEast.htm"><img src="Icons/NavRight.png" /></a></li>
        </ul>
    </div>
</div>

</body>
</html>

CSS:

head{
font-family: Tahoma;
}

body {
font-family: Tahoma;
background-color: Black;
margin: 0px;
padding: 0px;
}

li {
display: inline;
}

.Wall {
margin: 0px;
padding: 0px;
border: none;
position: fixed;
top: 0px;
left: 0px;
}

.Tray {
width: 100%;
height: 150 px;
position: fixed;
bottom: 0px;
}

.MenuBar {
height: 150px;
width: 600px;
bottom: 0px;
margin-bottom: 0px;
margin-left: auto;
margin-right: auto;
background-color: #999999;
opacity: 0.6;
}

.SlideBar {
width: 100%;
height: 150 px;
position: relative;
bottom: 0px;
}

.ShowHideButton {
height: 16px;
width: 90px;
margin-left: auto;
margin-right: auto;
background-color: #999999;
opacity: 0.6;
}
4

3 に答える 3

2

jQuery ( Jay Blanchard がフラグを立てた)を含めていないという事実に加えて、リンクのデフォルト アクションを防止する必要もあります。

$(document).ready(function(){
$('.ShowHideButton').click(function(){
    $('.MenuBar').slideToggle('slow');
    return false; // <== The new bit
});
});

また

$(document).ready(function(){
$('.ShowHideButton').click(function(e){ // <== Added 'e' arg
    $('.MenuBar').slideToggle('slow');
    e.preventDefault();                 // <== And preventDefault call
});
});

これは、それ以外の場合、リンクをクリックすると が続くためhrefです。これは、あなたの場合です#(したがって、URL に追加された理由)。

于 2013-05-13T13:11:21.407 に答える
1

preventDefault()また、クリックされたアンカーが追跡されないようにするためにも使用する必要があります。

$('.ShowHideButton').click(function(e) {
    e.preventDefault();
    $('.MenuBar').slideToggle('slow');
});
于 2013-05-13T13:08:41.960 に答える