Search code examples
htmlcsssemantic-uiweb-frontend

how to display semantic ui sidebars with javascript?


I want to implement this side bar of semantic ui in my page this is my code:

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>

<link rel="stylesheet" href="dist/semantic.min.css" />
<script type="text/javascript" src="dist/semantic.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
</head>
<body>
<form id="form1" runat="server">
<div class="ui top attached demo menu">
<a class="item">
<i class="sidebar icon"></i>
Menu
</a>
</div>
<div class="ui bottom attached segment pushable">
<div style="" class="ui inverted labeled icon left inline vertical sidebar menu">
  <a class="item">
  <i class="home icon"></i>
  Home
 </a>
 <a class="item">
  <i class="block layout icon"></i>
  Topics
</a>
<a class="item">
  <i class="smile icon"></i>
  Friends
</a>
<a class="item">
  <i class="calendar icon"></i>
  History
 </a>
</div>
<div class="pusher">
<div class="ui basic segment">
  <h3 class="ui header">Application Content</h3>
  <p></p>
  <p></p>
  <p></p>
  <p></p>
</div>
</div>
</div>
</form>
<script>
        $('.context.example .ui.sidebar')
          .sidebar({
              context: $('.context.example .bottom.segment')
          })
          .sidebar('attach events', '.context.example .menu .item')
        ;
</script>
</body>
</html>

This is what I want:

What I want

but when I click on Menu nothing happens. you can find my example here:

My example which I want to implement


Solution

  • That is because you are searching for a class that does not exist.

    Your Javascript code looks for: $('.context.example .ui.sidebar') but in your HTML code there is no class available named: .context.example.

    Therefore it will not work. If you do this:

    <form id="form1" runat="server">
    <div class="context example"> <!-- context & example class added -->
        <div class="ui top attached demo menu">
            <a class="item">
                <i class="sidebar icon"></i> Menu
            </a>
        </div>
        <div class="ui bottom attached segment pushable">
            <div style="" class="ui inverted labeled icon left inline vertical sidebar menu">
                <a class="item">
                    <i class="home icon"></i> Home
                </a>
                <a class="item">
                    <i class="block layout icon"></i> Topics
                </a>
                <a class="item">
                    <i class="smile icon"></i> Friends
                </a>
                <a class="item">
                    <i class="calendar icon"></i> History
                </a>
            </div>
            <div class="pusher">
                <div class="ui basic segment">
                    <h3 class="ui header">Application Content</h3>
                    <p></p>
                    <p></p>
                    <p></p>
                    <p></p>
                </div>
            </div>
        </div>
    </div>
    </form>
    

    It will work.