1、已解决左侧菜单当前操作菜单无选中样式;

2、已解决左侧菜单搜索功能无效;
3、已解决主界面左上角菜单导航未正确标记当前菜单位置;
4、已解决主界面的搜索条件区域,必须点开“筛选”,才能找到搜索按钮;
This commit is contained in:
chiguangxu
2018-03-18 14:57:48 +08:00
parent 9419c48077
commit 672a019e1a
19 changed files with 607 additions and 354 deletions

View File

@@ -11,7 +11,7 @@ officeManage=office management
userManage=user management
notify=my notify
help=help
home=home
home=Home
panel=my panel
userInfo=personal information
updatePwd=update password

View File

@@ -11,7 +11,7 @@ officeManage=office management
userManage=user management
notify=my notify
help=help
home=home
home=Home
panel=my panel
userInfo=personal information
updatePwd=update password

View File

@@ -11,7 +11,7 @@ officeManage=\u673a\u6784\u7ba1\u7406
userManage=\u7528\u6237\u7ba1\u7406
notify=\u6211\u7684\u540c\u5fd7
help=\u5173\u4e8e\u5e2e\u52a9
home=\u5b98\u65b9\u9996\u9875
home=\u9996\u9875
panel=\u6211\u7684\u9762\u677f
userInfo=\u4e2a\u4eba\u4fe1\u606f
updatePwd=\u4fee\u6539\u5bc6\u7801

View File

@@ -47,6 +47,10 @@
<script src="${pageContext.request.contextPath}/static/global/plugins/jquery-jbox/2.3/jquery.jBox-2.3.src.js" type="text/javascript"></script>
<script src="${pageContext.request.contextPath}/static/global/plugins/My97DatePicker/WdatePicker.js" type="text/javascript"></script>
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-typeahead/bootstrap3-typeahead.min.js" type="text/javascript"></script>
<script src="${pageContext.request.contextPath}/static/global/plugins/unicodes.js" type="text/javascript"></script>
<!-- END CORE PLUGINS -->

View File

@@ -7,16 +7,17 @@
<c:forEach items="${fns:getLeftMenuTreeList()}" var="menu" varStatus="idxStatus">
<ul id="menu_${menu.id }" class="hide accordion page-sidebar-menu page-header-fixed page-sidebar-menu-light"
data-keep-expanded="false" data-auto-scroll="true" data-slide-speed="200">
data-keep-expanded="false" data-auto-scroll="true" data-slide-speed="200"
menu-id="${menu.id }" menu-name="<spring:message code="${menu.code}"></spring:message>" >
<c:if test="${not empty menu.children }">
<c:forEach items="${menu.children}" var="secondMenu" varStatus="secondStatus">
<li class="nav-item <c:if test="${secondStatus.index==0 }"> active open</c:if>">
<li class="nav-item" id="menu_${secondMenu.id }" menu-id="${secondMenu.id }" menu-name="<spring:message code="${secondMenu.code}"></spring:message>" >
<a class="nav-link nav-toggle"
<c:if test="${secondMenu.href != null && secondMenu.href != ''}" var="secondHref">
href="${ctx}/${secondMenu.href }" target="mainFrame" >
href="javascript:;" onclick="page_turn('${secondMenu.id }','1','','${ctx}/${secondMenu.href }',this)" target="mainFrame" >
</c:if>
<c:if test="${!secondHref }">
href="javascript:;" class="nav-link nav-toggle">
@@ -26,7 +27,7 @@
<span class="title">
<%-- ${secondMenu.name } --%> <spring:message code="${secondMenu.code}"></spring:message></span>
<c:if test="${not empty secondMenu.children }" var="secondClid">
<span class="arrow open"></span>
<span class="arrow "></span>
</c:if>
</a>
@@ -37,11 +38,12 @@
<c:forEach items="${secondMenu.children}" var="thirdMenu" varStatus="thirdStatus">
<li class="nav-item <c:if test="${not empty thirdMenu.children && thirdStatus.index==0}">active open</c:if>">
<li class="nav-item" id="menu_${thirdMenu.id }" menu-id="${thirdMenu.id }" menu-name="<spring:message code="${thirdMenu.code}"></spring:message>">
<a class="nav-link nav-toggle"
<c:if test="${thirdMenu.href != null && thirdMenu.href != ''}" var="thirdHref">
href="${ctx}/${thirdMenu.href }" target="mainFrame" >
href="javascript:;" onclick="page_turn('${thirdMenu.id }','2','','${ctx}/${thirdMenu.href }',this)" target="mainFrame" >
</c:if>
<c:if test="${!thirdHref }">
href="javascript:;" class="nav-link nav-toggle">
@@ -50,15 +52,17 @@
<span class="title">
<%-- ${thirdMenu.name } --%><spring:message code="${thirdMenu.code}"></spring:message></span>
<c:if test="${not empty thirdMenu.children }" var="thiredClid">
<span class="arrow open"></span>
<span class="arrow "></span>
</c:if>
</a>
<c:if test="${thiredClid}">
<ul class="sub-menu">
<c:forEach items="${thirdMenu.children}" var="fourthMenu">
<li class="nav-item">
<a href="${ctx}/${fourthMenu.href }" target="mainFrame" class="nav-link ">
<li class="nav-item" id="menu_${fourthMenu.id }" menu-id="${fourthMenu.id }" menu-name="<spring:message code="${fourthMenu.code}"></spring:message>" >
<a href="javascript:;"
onclick="page_turn('${fourthMenu.id }','3','','${ctx}/${fourthMenu.href }',this)" target="mainFrame"
class="nav-link ">
<%-- ${fourthMenu.name } --%> <spring:message code="${fourthMenu.code}"></spring:message>
<!-- <span class="badge badge-danger">1</span> -->
</a>

View File

@@ -11,6 +11,7 @@
<script src="${pageContext.request.contextPath}/static/pages/scripts/home.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
@@ -28,9 +29,43 @@
$obj.parent("li").addClass("hide");
// === Search input typeahead === //
$('#searchText').typeahead({
source: function(query,process) {
var sourceArray = new Array();
$(".accordion:visible a[target='mainFrame']").each(function(){
sourceArray.push($(this).parents("li").attr("menu-name")+"_"+$(this).parents("li").attr("menu-id"));
})
return process(sourceArray)
},
setValue:function(item){
},
items: 8,
matcher:function(term){
var mod1 = pinyin.getPY_Header(term);
var mod2 = pinyin.getPY_All(term);
var mod3 = term;
var s1 = mod1.toUpperCase().indexOf(this.query.toUpperCase())!=-1;
var s2 = mod2.toUpperCase().indexOf(this.query.toUpperCase())!=-1;
var s3 = mod3.toUpperCase().indexOf(this.query.toUpperCase())!=-1;
return (s1||s2||s3);
}
});
$("#searchText").click(function(){
$(this).val("");
});
});
//面包屑导航
$(function(){
/* $(function(){
$("div ul li a").click(function(){
if(typeof $(this).attr("id") !='undefined'){
@@ -43,7 +78,61 @@
// var ur="${ctx}"+urlto.split("nis")[1];
// $("#menutwo").attr("href",ur);
})
})
}) */
//页面跳转函数 level:级别1顶级2有子级。name:菜单名称,有多级#间隔。url访问路径。object点击元素对象。
function page_turn(id, level, name, url,obj){
var $object = $("#menu_"+id);//点击当前级别
$(".page-sidebar li").filter(".active,.open").removeClass("active open");//删除选中样式
var $header = $(".page-breadcrumb");//添加头部信息
$(".page-breadcrumb").empty();
var parent_li = $object.parents("li");
var parent_parent_li = $object.parents("li").parents("li");
var breadcrumb = $(".accordion:visible").attr("menu-name");
if(level==1){//一级菜单
breadcrumb += "#"+$object.attr("menu-name");
}else if(level==2){//二级菜单
parent_li.addClass("active open");
breadcrumb += "#"+parent_li.attr("menu-name")+"#"+$object.attr("menu-name");
}else if(level==3){//三级
parent_li.addClass("active open");
parent_parent_li.addClass("active open");
breadcrumb += "#"+parent_parent_li.attr("menu-name")+"#"+parent_li.attr("menu-name")+"#"+$object.attr("menu-name");
}
$object.addClass("active");
$header.append("<li><a href='index.html'><spring:message code='home'></spring:message></a> <i class='fa fa-circle'></i></li>");
var breadcrumbs = breadcrumb.split("#");
for(var i=0;i<breadcrumbs.length;i++) {
var circle="";
if(i!=breadcrumbs.length-1) {
circle = " <i class='fa fa-circle'></i>";
}
$header.append("<li><a href='javascript:void(0);'>"+breadcrumbs[i]+"</a>"+circle+"</li>");
}
//调入页面
window.frames['mainFrame'].location=url;
App.scrollTo()
}
function searchMenu() {
var search_txt = $("#searchText").val();
if(search_txt.indexOf('_')!=-1){
search_txt = search_txt.substring(search_txt.lastIndexOf('_'));
$("#menu"+search_txt+" >a").trigger('click');
}else {
alert('未找到该菜单!');
}
}
</script>
</head>
@@ -193,14 +282,13 @@
</li>
<li class="sidebar-search-wrapper">
<form class="sidebar-search " action="page_general_search_3.html"
method="POST">
<form class="sidebar-search">
<a href="javascript:;" class="remove"> <i class="icon-close"></i>
</a>
<div class="input-group">
<input class="form-control" placeholder="Search..." type="text">
<input class="form-control" autocomplete="off" spellcheck="false" placeholder="Search..." type="text" id="searchText">
<span class="input-group-btn"> <a href="javascript:;"
class="btn submit"> <i class="icon-magnifier"></i>
class="btn" onclick="searchMenu();"> <i class="icon-magnifier"></i>
</a>
</span>
</div>
@@ -225,10 +313,7 @@
<div class="page-bar">
<ul class="page-breadcrumb">
<li><a href="index.html">Home</a> <i class="fa fa-circle"></i>
</li>
<li><a href="#" id="menutwo" target="mainFrame">Tables</a> <i class="fa fa-circle"></i></li>
<li><span id="menuthree">Datatables</span></li>
<li><a href="index.html"><spring:message code="home"></spring:message></a> <i class="fa fa-circle"></i></li>
</ul>
</div>

View File

@@ -0,0 +1,254 @@
Bootstrap 3 Typeahead
=====================
For simple autocomplete use cases there seems to be nothing wrong with the dropped typeahead plugin. Here you will find the typeahead autocomplete plugin for Twitter's Bootstrap 2 ready to use with Twitter's Bootstrap 3. The original code is written by [@mdo](http://twitter.com/mdo) and [@fat](http://twitter.com/fat).
Users who migrate their website or app from Twitter's Bootstrap 2 to Bootstrap 3 can also use this plugin to keep their current autocomplete functions. See for a complete list of migrations steps: [Migrate your templates from Twitter Bootstrap 2.x to Twitter Bootstrap 3](http://bassjobsen.weblogs.fm/migrate-your-templates-from-twitter-bootstrap-2-x-to-twitter-bootstrap-3/)
With Twitter Bootstrap 3 the typeahead plugin had been dropped. [@mdo](http://twitter.com/mdo) says: "in favor of folks using [Twitter's typeahead](https://github.com/twitter/typeahead.js). Twitter's typeahead has more features than the old bootstrap-typeahead.js and less bugs." Twitter's typeahead don't work direct with Bootstrap 3. The DOM structure of the dropdown menu used by `typeahead.js` differs from the DOM structure of the Bootstrap dropdown menu. You'll need to load some additional CSS in order to get the `typeahead.js` dropdown menu to fit the default Bootstrap theme. Try [extended Bootstrap LESS](https://github.com/bassjobsen/typeahead.js-bootstrap-css) or if your are looking for a more extended version try: [typeahead.js-bootstrap3.less](https://github.com/hyspace/typeahead.js-bootstrap3.less/blob/master/typeahead.less).
~~`Typeahead.js` doesn't seem ready for the new Twitter Bootstrap 3 at the moment. Code is not up to date and fixes are needed. See also:
[Typeahead problems with Bootstrap 3.0 RC1](http://stackoverflow.com/questions/18167246/typeahead-problems-with-bootstrap-3-0-rc1).~~
Download
========
- Download the latest [bootstrap3-typeahead.js](https://github.com/bassjobsen/Bootstrap-3-Typeahead/blob/master/bootstrap3-typeahead.js) or [bootstrap3-typeahead.min.js](https://github.com/bassjobsen/Bootstrap-3-Typeahead/blob/master/bootstrap3-typeahead.min.js).
- Include it in your source after jQuery and Bootstrap's JavaScript.
Full integration with Bootstrap 3 Typeahead
-------------------------------------------
Download the latest version of Boostrap from [Bootstrap](https://github.com/twbs/bootstrap/archive/master.zip). Copy `bootstrap3-typeahead.js` to the js/ folder. Edit `gruntfile.js` and add `bootstrap3-typeahead.js` to the plugins list.
Build your own version with typeahead with `grunt dist`.
CSS
===
There is no additional CSS required to use the plugin. Bootstrap's CSS contains all required styles in the `.dropdown-menu` class. The original CSS adds a `z-index` of 1051 to the dropdownmenu via the typeahead class. You could add this if you need it.
`.typeahead { z-index: 1051; }` (less or css).
Usage
=====
<input type="text" data-provide="typeahead">
You'll want to set `autocomplete="off"` to prevent default browser menus from appearing over the Bootstrap typeahead dropdown.
Via data attributes
-------------------
Add data attributes to register an element with typeahead functionality as shown in the example above.
Via JavaScript
--------------
Call the typeahead manually with:
$('.typeahead').typeahead()
Destroys previously initialized typeaheads. This entails reverting DOM modifications and removing event handlers:
$('.typeahead').typeahead('destroy')
Javascript Example
=============
Loading a collection
--------------------
$.get('example_collection.json', function(data){
$("#name").typeahead({ source:data });
},'json');
//example_collection.json
// ["item1","item2","item3"]
Using JSON objects instead of simple strings
--------------------------------------------
You can add all the properties you wish on your objects, as long as you provide a "name" attribute OR you provide your own displayText method. The other values allow you to match the selected item with something in your model.
var $input = $('.typeahead');
$input.typeahead({source:[{id: "someId1", name: "Display name 1"},
{id: "someId2", name: "Display name 2"}],
autoSelect: true});
$input.change(function() {
var current = $input.typeahead("getActive");
if (current) {
// Some item from your model is active!
if (current.name == $input.val()) {
// This means the exact match is found. Use toLowerCase() if you want case insensitive match.
} else {
// This means it is only a partial match, you can either add a new item
// or take the active if you don't want new items
}
} else {
// Nothing is active so it is a new value (or maybe empty value)
}
});
Options
=======
Options can be passed via data attributes or JavaScript. For data attributes, append the option name to `data-`, as in `data-source=""`.
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="width: 100px;">Name</th>
<th style="width: 50px;">Type</th>
<th style="width: 100px;">Default</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>source</td>
<td>array, function</td>
<td>[ ]</td>
<td>The data source to query against. May be an array of strings, an array of JSON object with a name property or a function. The function accepts two arguments, the <code>query</code> value in the input field and the <code>process</code> callback. The function may be used synchronously by returning the data source directly or asynchronously via the <code>process</code> callback's single argument.</td>
</tr>
<tr>
<td>items</td>
<td>number</td>
<td>8</td>
<td>The max number of items to display in the dropdown. Can also be set to 'all'</td>
</tr>
<tr>
<td>minLength</td>
<td>number</td>
<td>1</td>
<td>The minimum character length needed before triggering autocomplete suggestions. You can set it to 0 so suggestion are shown even when there is no text when lookup function is called.</td>
</tr>
<tr>
<td>showHintOnFocus</td>
<td>boolean</td>
<td>false</td>
<td>If hints should be shown when applicable as soon as the input gets focus.</td>
</tr>
<tr>
<td>scrollHeight</td>
<td>number, function</td>
<td>0</td>
<td>Number of pixels the scrollable parent container scrolled down (scrolled out the viewport).</td>
</tr>
<tr>
<td>matcher</td>
<td>function</td>
<td>case insensitive</td>
<td>The method used to determine if a query matches an item. Accepts a single argument, the <code>item</code> against which to test the query. Access the current query with <code>this.query</code>. Return a boolean <code>true</code> if query is a match.</td>
</tr>
<tr>
<td>sorter</td>
<td>function</td>
<td>exact match,<br> case sensitive,<br> case insensitive</td>
<td>Method used to sort autocomplete results. Accepts a single argument <code>items</code> and has the scope of the typeahead instance. Reference the current query with <code>this.query</code>.</td>
</tr>
<tr>
<td>updater</td>
<td>function</td>
<td>returns selected item</td>
<td>The method used to return selected item. Accepts a single argument, the <code>item</code> and has the scope of the typeahead instance.</td>
</tr>
<tr>
<td>highlighter</td>
<td>function</td>
<td>highlights all default matches</td>
<td>Method used to highlight autocomplete results. Accepts a single argument <code>item</code> and has the scope of the typeahead instance. Should return html.</td>
</tr>
<tr>
<td>displayText</td>
<td>function</td>
<td>item.name || item</td>
<td>Method used to get textual representation of an item of the sources. Accepts a single argument <code>item</code> and has the scope of the typeahead instance. Should return a String.</td>
</tr>
<tr>
<td>autoSelect</td>
<td>boolean</td>
<td>true</td>
<td>Allows you to dictate whether or not the first suggestion is selected automatically. Turning autoselect off also means that the input won't clear if nothing is selected and <kbd>enter</kbd> or <kbd>tab</kbd> is hit.</td>
</tr>
<tr>
<td>afterSelect</td>
<td>function</td>
<td>$.noop()</td>
<td>Call back function to execute after selected an item. It gets the current active item in parameter if any.</td>
</tr>
<tr>
<td>delay</td>
<td>integer</td>
<td>0</td>
<td>Adds a delay between lookups.</td>
</tr>
<tr>
<tr>
<td>addItem</td>
<td>JSON object</td>
<td>false</td>
<td>Adds an item to the end of the list, for example "New Entry". This could be used, for example, to pop a dialog when an item is not found in the list of data. Example: <a href="http://cl.ly/image/2u170I1q1G3A/addItem.png">http://cl.ly/image/2u170I1q1G3A/addItem.png</a></td>
</tbody>
</table>
Methods
=======
.typeahead(options): Initializes an input with a typeahead.
.lookup: To trigger the lookup function externally
.getActive: To get the currently active item, you will get a String or a JSOn object depending on how you initialized typeahead. Works only for the first match.
Bower
=====
To use with [Bower](http://bower.io/). Add to your bower.json file:
{
"name": "MyProject",
"dependencies": {
"bootstrap3-typeahead": "git@github.com:bassjobsen/Bootstrap-3-Typeahead.git#master"
}
}
Bloodhound
==========
[Bloodhound](https://github.com/twitter/typeahead.js/blob/master/doc/bloodhound.md) is the [typeahead.js](https://github.com/twitter/typeahead.js) suggestion engine, since version 0.10.0. Bloodhound is robust, flexible, and offers advanced functionalities such as prefetching, intelligent caching, fast lookups, and backfilling with remote data. To use Bloodhound with Bootstrap-3-Typeahead:
// instantiate the bloodhound suggestion engine
var numbers = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.whitespace,
queryTokenizer: Bloodhound.tokenizers.whitespace,
local: ["(A)labama","Alaska","Arizona","Arkansas","Arkansas2","Barkansas"]
});
// initialize the bloodhound suggestion engine
numbers.initialize();
$('.typeahead').typeahead(
{
items: 4,
source:numbers.ttAdapter()
});
Bootstrap Tags Input
====================
[Bootstrap Tags Input](http://timschlechter.github.io/bootstrap-tagsinput/examples/) is a jQuery plugin providing a Twitter Bootstrap user interface for managing tags. Bootstrap Tags Input has a typeahead option which allows you to set the source:
$('input').tagsinput({
typeahead: {
source: ['Amsterdam', 'Washington', 'Sydney', 'Beijing', 'Cairo']
}
});
or
$('input').tagsinput({
typeahead: {
source: function(query) {
return $.get('http://someservice.com');
}
}
});
See also: https://github.com/bassjobsen/Bootstrap-3-Typeahead/issues/40

File diff suppressed because one or more lines are too long

View File

@@ -1,19 +0,0 @@
Copyright (c) 2013-2014 Twitter, Inc
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

View File

@@ -1,188 +0,0 @@
[![build status](https://secure.travis-ci.org/twitter/typeahead.js.png?branch=master)](http://travis-ci.org/twitter/typeahead.js)
[![Built with Grunt](https://cdn.gruntjs.com/builtwith.png)](http://gruntjs.com/)
[typeahead.js][gh-page]
=======================
Inspired by [twitter.com]'s autocomplete search functionality, typeahead.js is
a flexible JavaScript library that provides a strong foundation for building
robust typeaheads.
The typeahead.js library consists of 2 components: the suggestion engine,
[Bloodhound], and the UI view, [Typeahead].
The suggestion engine is responsible for computing suggestions for a given
query. The UI view is responsible for rendering suggestions and handling DOM
interactions. Both components can be used separately, but when used together,
they can provide a rich typeahead experience.
<!-- section links -->
[gh-page]: http://twitter.github.io/typeahead.js/
[twitter.com]: https://twitter.com
[Bloodhound]: https://github.com/twitter/typeahead.js/blob/master/doc/bloodhound.md
[Typeahead]: https://github.com/twitter/typeahead.js/blob/master/doc/jquery_typeahead.md
Getting Started
---------------
How you acquire typeahead.js is up to you.
Preferred method:
* Install with [Bower]: `$ bower install typeahead.js`
Other methods:
* [Download zipball of latest release][zipball].
* Download the latest dist files individually:
* *[bloodhound.js]* (standalone suggestion engine)
* *[typeahead.jquery.js]* (standalone UI view)
* *[typeahead.bundle.js]* (*bloodhound.js* + *typeahead.jquery.js*)
* *[typeahead.bundle.min.js]*
**Note:** both *bloodhound.js* and *typeahead.jquery.js* have a dependency on
[jQuery] 1.9+.
<!-- section links -->
[Bower]: http://bower.io/
[zipball]: http://twitter.github.com/typeahead.js/releases/latest/typeahead.js.zip
[bloodhound.js]: http://twitter.github.com/typeahead.js/releases/latest/bloodhound.js
[typeahead.jquery.js]: http://twitter.github.com/typeahead.js/releases/latest/typeahead.jquery.js
[typeahead.bundle.js]: http://twitter.github.com/typeahead.js/releases/latest/typeahead.bundle.js
[typeahead.bundle.min.js]: http://twitter.github.com/typeahead.js/releases/latest/typeahead.bundle.min.js
[jQuery]: http://jquery.com/
Documentation
-------------
* [Typeahead Docs]
* [Bloodhound Docs]
[Typeahead Docs]: https://github.com/twitter/typeahead.js/blob/master/doc/jquery_typeahead.md
[Bloodhound Docs]: https://github.com/twitter/typeahead.js/blob/master/doc/bloodhound.md
Examples
--------
For some working examples of typeahead.js, visit the [examples page].
<!-- section links -->
[examples page]: http://twitter.github.io/typeahead.js/examples
Browser Support
---------------
* Chrome
* Firefox 3.5+
* Safari 4+
* Internet Explorer 7+
* Opera 11+
**NOTE:** typeahead.js is not tested on mobile browers.
Customer Support
----------------
For general questions about typeahead.js, tweet at [@typeahead].
For technical questions, you should post a question on [Stack Overflow] and tag
it with [typeahead.js][so tag].
<!-- section links -->
[Stack Overflow]: http://stackoverflow.com/
[@typeahead]: https://twitter.com/typeahead
[so tag]: http://stackoverflow.com/questions/tagged/typeahead.js
Issues
------
Discovered a bug? Please create an issue here on GitHub!
https://github.com/twitter/typeahead.js/issues
Versioning
----------
For transparency and insight into our release cycle, releases will be numbered
with the follow format:
`<major>.<minor>.<patch>`
And constructed with the following guidelines:
* Breaking backwards compatibility bumps the major
* New additions without breaking backwards compatibility bumps the minor
* Bug fixes and misc changes bump the patch
For more information on semantic versioning, please visit http://semver.org/.
Testing
-------
Tests are written using [Jasmine] and ran with [Karma]. To run
the test suite with PhantomJS, run `$ npm test`.
<!-- section links -->
[Jasmine]: http://pivotal.github.com/jasmine/
[Karma]: http://karma-runner.github.io/
Developers
----------
If you plan on contributing to typeahead.js, be sure to read the
[contributing guidelines]. A good starting place for new contributors are issues
labeled with [entry-level]. Entry-level issues tend to require minor changes
and provide developers a chance to get more familiar with typeahead.js before
taking on more challenging work.
In order to build and test typeahead.js, you'll need to install its dev
dependencies (`$ npm install`) and have [grunt-cli]
installed (`$ npm install -g grunt-cli`). Below is an overview of the available
Grunt tasks that'll be useful in development.
* `grunt build` Builds *typeahead.js* from source.
* `grunt lint` Runs source and test files through JSHint.
* `grunt watch` Rebuilds *typeahead.js* whenever a source file is modified.
* `grunt server` Serves files from the root of typeahead.js on localhost:8888.
Useful for using *test/playground.html* for debugging/testing.
* `grunt dev` Runs `grunt watch` and `grunt server` in parallel.
<!-- section links -->
[contributing guidelines]: https://github.com/twitter/typeahead.js/blob/master/CONTRIBUTING.md
[entry-level]: https://github.com/twitter/typeahead.js/issues?&labels=entry-level&state=open
[grunt-cli]: https://github.com/gruntjs/grunt-cli
Maintainers
-----------
* **Jake Harding**
* [@JakeHarding](https://twitter.com/JakeHarding)
* [GitHub](https://github.com/jharding)
* **You?**
Authors
-------
* **Jake Harding**
* [@JakeHarding](https://twitter.com/JakeHarding)
* [GitHub](https://github.com/jharding)
* **Veljko Skarich**
* [@vskarich](https://twitter.com/vskarich)
* [GitHub](https://github.com/vskarich)
* **Tim Trueman**
* [@timtrueman](https://twitter.com/timtrueman)
* [GitHub](https://github.com/timtrueman)
License
-------
Copyright 2013 Twitter, Inc.
Licensed under the MIT License

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,68 +0,0 @@
.twitter-typeahead {
width: 100%;
display: table !important;
}
.twitter-typeahead .form-control {
margin: 0 !important;
}
.tt-hint,
.tt-input {
color: #999;
font-size: 14px;
height: 34px;
padding: 6px 12px;
font-size: 14px;
line-height: 1.428571429;
width: 100%;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.tt-hint[disabled] {
background-color: #fff !important;
}
.tt-menu {
min-width: 160px;
margin-top: 2px;
padding: 5px 0;
background-color: #fff;
border: 1px solid #ebebeb;
-webkit-background-clip: padding-box;
-moz-background-clip: padding;
background-clip: padding-box;
width: 100%;
overflow-y: auto;
max-height: 250px;
}
.tt-menu h3 {
margin: 5px 0;
padding: 6px 12px;
font-size: 18px;
font-weight: 700;
border-bottom: 1px solid #eee;
}
.modal-open .tt-menu {
z-index: 10055 !important;
}
.tt-suggestion {
padding: 6px 12px;
font-size: 14px;
line-height: 16px;
}
.tt-suggestion:hover {
cursor: pointer;
background: #eee;
}
.tt-suggestion p {
margin: 0;
}

File diff suppressed because one or more lines are too long

View File

@@ -325,13 +325,13 @@ function filterActionInit() {
function fiterPanleShow() {
$("#filter-btn").find("i").removeClass("fa-angle-double-down").addClass("fa-angle-double-up");
$(".btn-search").addClass("hide");
//$(".btn-search").addClass("hide");
$(".filter-action-select-panle").removeClass("hide");
}
function fiterPanleHide() {
$("#filter-btn").find("i").removeClass("fa-angle-double-up").addClass("fa-angle-double-down");
$(".btn-search").removeClass("hide");
//$(".btn-search").removeClass("hide");
$(".filter-action-select-panle").addClass("hide");
}

View File

@@ -945,7 +945,7 @@
background:0 0;
margin:0;
padding:0;
margin-top:1px!important
margin-top:2px!important
}
.page-sidebar .page-sidebar-menu .sub-menu li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li>a {
display:block;
@@ -968,7 +968,8 @@
.page-sidebar .page-sidebar-menu .sub-menu li>.sub-menu>li>.sub-menu,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li>.sub-menu>li>.sub-menu {
margin:0
}
.page-sidebar .page-sidebar-menu .sub-menu li>.sub-menu>li>.sub-menu>li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li>.sub-menu>li>.sub-menu>li>a {
.page-sidebar .page-sidebar-menu .sub-menu li>.sub-menu>li>.sub-menu>li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li>.su
b-menu>li>.sub-menu>li>a {
padding-left:80px
}
.page-sidebar .page-sidebar-menu .sub-menu.always-open,.page-sidebar .page-sidebar-menu li.active>.sub-menu,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu.always-open,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li.active>.sub-menu {
@@ -989,7 +990,7 @@
padding-bottom:8px
}
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu li:first-child,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu li:first-child {
margin-top:0!important
}
.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li>a,.page-sidebar-reversed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li>a {
padding-left:15px;

View File

@@ -260,8 +260,9 @@
/* All links */ }
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li > a,
.page-sidebar .page-sidebar-menu > li > a {
border-top: 1px solid #484848;
color: #d9d9d9; }
color: #fff;
border-top: 1px solid #484848 !important;
}
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li > a > i,
.page-sidebar .page-sidebar-menu > li > a > i {
color: #888888; }
@@ -324,7 +325,7 @@
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li > a > .arrow:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li > a > .arrow.open:before,
.page-sidebar .page-sidebar-menu li > a > .arrow:before,
.page-sidebar .page-sidebar-menu li > a > .arrow.open:before {
color: #777777; }
color: #fff; }
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li:hover > a > .arrow:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li:hover > a > .arrow.open:before,
.page-sidebar .page-sidebar-menu li:hover > a > .arrow:before,
.page-sidebar .page-sidebar-menu li:hover > a > .arrow.open:before {
@@ -350,7 +351,7 @@
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li > a > .arrow:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li > a > .arrow.open:before,
.page-sidebar .page-sidebar-menu .sub-menu > li > a > .arrow:before,
.page-sidebar .page-sidebar-menu .sub-menu > li > a > .arrow.open:before {
color: #777777; }
color: #fff; }
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li:hover > a, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li.open > a, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li.active > a,
.page-sidebar .page-sidebar-menu .sub-menu > li:hover > a,
.page-sidebar .page-sidebar-menu .sub-menu > li.open > a,
@@ -376,18 +377,20 @@
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li:hover > a, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.open > a,
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li:hover > a,
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.open > a {
background: #424242; }
background: #303030; }
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.active > a, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a,
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active > a,
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a {
background: #474747;
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active > a {
background: #303030;
border-left: 4px solid #d64635;
color: #f1f1f1; }
color: #f1f1f1;
}
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a {
background: #303030;}
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.active > a:hover, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a:hover,
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active > a:hover,
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a:hover {
border-left: 4px solid #d64635;
background: #424242; }
background: #303030; }
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.active > a > i, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a > i,
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active > a > i,
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a > i {
@@ -405,7 +408,8 @@
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu > li:hover > a,
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu > li.open > a,
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu > li.active > a {
background: #474747 !important; }
color: #ffffff !important;
background: #575757 !important; }
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler,
.page-sidebar .sidebar-toggler {
background: #303030; }
@@ -432,10 +436,10 @@
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group,
.page-sidebar .sidebar-search .input-group {
border-bottom: 1px solid #484848; }
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control,
.page-sidebar-closed.pagek-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control,
.page-sidebar .sidebar-search .input-group .form-control {
background-color: #3d3d3d;
color: #5c5c5c; }
color: #fffdfd; }
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control::-moz-placeholder,
.page-sidebar .sidebar-search .input-group .form-control::-moz-placeholder {
color: #5c5c5c;

View File

@@ -175,7 +175,7 @@ var Layout = function () {
'scrollTo': (the.position()).top
});
} else {
App.scrollTo(the, slideOffeset);
//App.scrollTo();
}
}
handleSidebarAndContentHeight();
@@ -190,7 +190,7 @@ var Layout = function () {
'scrollTo': (the.position()).top
});
} else {
App.scrollTo(the, slideOffeset);
//App.scrollTo(the, slideOffeset);
}
}
handleSidebarAndContentHeight();

View File

@@ -39,6 +39,31 @@ var home = function () {
}
//点击顶部菜单,默认展开左侧菜单,如果左侧菜单已有被选中的则忽视
var left_menu_lis = $(menuId).find("li");
if(!(left_menu_lis.hasClass("active") ||
left_menu_lis.hasClass("open"))) {
var $li1 = $(menuId).find("li:first");
var $li2 = $(menuId).find("li:first").find("li:first");
var hasSubMenu1 = $li1.children().hasClass('sub-menu');
if(hasSubMenu1) {
$li1.addClass('open');
$li1.find('> a > .arrow').addClass('open');
$li1.find('> .sub-menu').slideDown();
var hasSubMenu2 = $li2.children().hasClass('sub-menu');
if(hasSubMenu2) {
$li2.addClass('open');
$li2.find('> a > .arrow').addClass('open');
$li2.find('> .sub-menu').slideDown();
}
}
}
})