11

我是 jQuery 的新手。我正在尝试在我的项目中创建搜索框功能。我创建了一个包含城市名称的 div,我希望它显示在按钮的单击事件上。我可以在slideToggle()按钮的单击事件上使用 jQuery 方法隐藏和显示该 div。但是当显示 div 时,我页面的其他内容就会分心。我不希望这种行为。

这是我在显示该 div 之前的图像:

在此处输入图像描述

以下是显示 div 后的页面图片:

在此处输入图像描述

现在我希望这个 div 像弹出窗口一样显示,这样它就不会分散页面的其他内容。

以下是我的 HTML 搜索框部分的代码:

        <!--start SearchBox section-->
        <section id="searchbox"style="background:white">
            <div class="container" style="margin-top:0px;">


              <div class="row">

                    <div class="col-lg-12">


               <form style="">
                    <center>
                            <div id="SearchBoxBorder" style="background:white;border:2px solid #a1a1a1;border-radius:5px;margin-top:20px;width:800px;">
                            <table id="mytable" >
                                    <td style="width:300px;background:white;">
                                       <center> <div class="form-group">
                                                <input type="text" class="form-control" id="exampleInputEmail1" placeholder="I am looking for"
                                                    style="border-width:5px;background:white; margin-top:17px; margin-left:15px; margin-right:10px;width:300px;
                                                    border-style:solid;border-width:5px;border-color:#a1a1a1;font-family:Arial,Helvetica,sans-serif;height:42px; font-size:18px;">
                                        </div></center>
                                     </td>

                                     <td style="width:50px ;text-align:right;background:white;"> <center><strong> in</strong></center>    </td>

                                     <td style="width:400px;background:white;">
                                     <center>
                                             <div class="input-group">
                                                   <input type="text" class="form-control" placeholder="in locality"
                                                    style="border-width:5px;background:white; margin-top:0px; margin-left:10px; margin-right:20px;width:;font-size:18px;
                                                    border-style:solid;border-width:5px;border-color:#a1a1a1;font-family:Arial,Helvetica,sans-serif;height:42px;">
                                                   <div class="input-group-btn">
                                                            <button type="button" class="btn btn-default dropdown-toggle"  data-toggle="dropdown" id="dropdownBtn" 
                                                             style="background:white;border-top-width:5px;border-right-width:5px;border-bottom-width:5px;border-left-width:1px;
                                                             border-color:#a1a1a1;height:42px;border-radius:0px;text-align:center;color:black; margin-right:20px;">Select<span class="caret"></span></button>

                                                             <!--City dropdown -->
                                                                    <div class="SearchCities">
                                                                            <div id="outer" style="">



                                                                                        <div id="innerLeft" style="">
                                                                                            <h5 >North India:</h5>
                                                                                            <ul class="city" type="none";>
                                                                                                    <li><a>Delhi</a></li>
                                                                                                    <li><a>Agra</a></li>
                                                                                                    <li><a>Shrinagar</a></li>
                                                                                                    <li><a>Noida</a></li>
                                                                                                    <li><a>Himachal</a></li>
                                                                                                    <li><a>Patna</a></li>
                                                                                            </ul>

                                                                                        </div>

                                                                                        <div id="innerRight" style="">
                                                                                            <a class="close">&times;</a>
                                                                                            <h5>West India:</h5>
                                                                                            <ul class="city" type="none";>
                                                                                                    <li><a>Mumbai</a></li>
                                                                                                    <li><a>Pune</a></li>
                                                                                                    <li><a>Nashik</a></li>
                                                                                                    <li><a>Kolhapur</a></li>
                                                                                                    <li><a>Osmanabad</a></li>
                                                                                                    <li><a>Ahamdabad</a></li>
                                                                                            </ul>
                                                                                        </div>


                                                                            </div><!--/outer-->
                                                                        </div><!--/SearchCities-->


                                                             </div><!-- /btn-group -->
                                                   <button type="button" class="btn btn-primary" style="margin-right:20px;"><i class="icon-search" style="font-size:20px"></i>  Search</button>
                                             </div><!-- /input-group -->
                                           </center>         
                                     </td>

                            </table>
                        </center>
                    </form>

    </div><!--/col-lg-12-->
</div><!--/row-->
    </div><!--/end of container-->
</section>
<!--End of SearchBox section-->

以下是我的 jQuery 代码:

$(document).ready(function(){
  $(".SearchCities").hide();
  $("#dropdownBtn").click(function(){
  $(".SearchCities").slideToggle();
  });
});

想了解更多我想做什么,请访问:askme.com并在顶部看到一个搜索框,然后单击印度其他地区。所以请你能帮我实现这个目标吗?先感谢您。

4

3 回答 3

11

你基本上有三种方式:

  1. 手动:使弹出的 div 浮动并绝对定位,然后将 top 设置为 100%(这将使它看起来像一个弹出菜单。确保父元素具有相对定位。

    HTML:

    <div class="input-group" style="position: relative;">
      <div class="SearchCities">
        ...
      </div>
    </div>
    

    CSS:

    .SearchCities {
      float: right;
      position: absolute;
      top: 100%;
    }
    

    JS:无需更改

  2. 使用 jQueryUI 的对话框插件:正如 nrsharma 的回答中所指出的,您可以使用 jQuery 插件使其看起来像一个弹出对话框。

    $('.SearchCities').dialog({ autoOpen: false }); // Initialize dialog plugin
    $('.SearchCities').dialog("open"); // Open popup
    

    API 参考:http ://api.jqueryui.com/dialog/

    示例:http: //jqueryui.com/dialog/

    插件下载:http: //jqueryui.com/download/

  3. 使用引导程序的下拉组件:从您的代码看来,您正在使用引导程序。您可以轻松使用引导下拉菜单或模式。

    Bootstrap modals 是弹出对话框,就像 jQueryUI 的对话框插件一样,但它们看起来更好,而且更可定制。看看那里的例子: http: //getbootstrap.com/javascript/#modals

    Bootstrap 下拉菜单是简单的下拉菜单,但只要稍加修改,您就可以在其中放入任何内容。

    您只需要一点 HTML(不需要 JavaScript):

    <div class="input-group dropdown">
      <button type="button" class="btn btn-default dropdown-toggle"
        data-toggle="dropdown" id="dropdownBtn" role="button">...</button>
      <div class="dropdown-menu SearchCities" role="menu">
        ...
      </div>
    </div>
    

    要完成这项工作,您还需要包含 Bootstrap js 插件(bootstrap.js/bootstrap.min.js)。

    参考: http: //getbootstrap.com/javascript/#dropdowns

于 2013-10-12T12:11:52.483 回答
5

在这里您可以轻松做到这一点

HTML

<div class="dialogbox"> This is Dialogue box</div>
<a id="click">click here</a>

CSS

.dialogbox{width:100px; height:100px; background:grey;display:none}

查询

<script src="latest jquery library"></script>

    <script>

    $(document).ready(function(){
    $("#click").click(function(){

    $(".dialogbox").toggle();

    });

    });
   </script>
于 2013-10-12T12:29:14.677 回答
3

您可以使用 jQuery UI 对话框轻松完成。

HTML:

<div id="dialog" title="Basic dialog">
  <p>This is the default dialog which is useful for displaying information. The
     dialog window can be moved, resized and closed with the 'x' icon.</p>
</div>

JavaScript/jQuery:

$(function() {
    $( "#dialog" ).dialog();
});

更多信息可以在这里找到。

于 2013-10-12T11:59:13.050 回答