我正在测试我在github上发现的一些代码,我改变了一些我的喜欢但是当我再次单击菜单时,我似乎无法隐藏div。这是我试图修改但没有运气的javascript文件。
(function ($) {
$.fn.popmenu = function (options) {
var settings = $.extend({
'controller': true,
'width': '100%',
'background': '#fff',
'focusColor': '#BEACAC',
'top': '-15',
'iconSize': '33.3%',
'color': '#000',
'border': '0px'
}, options);
if (settings.controller === true) {
var temp_display = 'none';
} else {
var temp_display = 'block';
}
var tar = $(this);
var tar_body = tar.children('ul');
var tar_list = tar_body.children('li');
var tar_a = tar_list.children('a');
var tar_ctrl = tar.children('.pop_ctrl');
function setIt() {
tar_body.css({
'display': temp_display,
'position': 'absolute',
'margin-top': -settings.top,
'margin-left': -settings.left,
'background': settings.background,
'width': settings.width,
'float': 'left',
'padding': '0',
'border': settings.border
});
tar_list.css({
'display': 'block',
'color': settings.color,
'float': 'left',
'width': settings.iconSize,
'height': settings.iconSize,
'text-align': 'center',
});
tar_a.css({
'text-decoration': 'none',
'color': settings.color
});
tar_ctrl.hover(function () {
tar_ctrl.css('cursor', 'pointer');
}, function () {
tar_ctrl.css('cursor', 'default')
});
tar_ctrl.click(function (e) {
e.preventDefault();
tar_body.show('fast');
$(document).mouseup(function (e) {
var _con = tar_body;
if (!_con.is(e.target) && _con.has(e.target).length === 0) {
_con.hide();
}
//_con.hide(); some functions you want
});
});
tar_list.hover(function () {
$(this).css({
'background': settings.focusColor,
'cursor': 'pointer'
});
}, function () {
$(this).css({
'background': settings.background,
'cursor': 'default'
});
});
}
return setIt();
};
}(jQuery));
我还在menu.php页面上尝试了一些脚本,其中有一个函数。我尝试将函数放在if语句中,但这也不起作用。
menu.php
$(function(){
$('#demo_box').popmenu();
})
这是我第一次发帖,所以我希望我不会在这个网站上违反任何规则。
此外,如果您有任何人愿意,我可以添加我尝试过的代码。
谢谢。 迪达
更新
(menu.php)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Menu</title>
<link rel="stylesheet" href="jQueryPopMenu-master/lib/font-awesome/css/font-awesome.min.css"/>
<style>
#container{
position: absolute;
top: 0;
left: 0;
width: 100%;
background-color: red;
display: inline;
height: 70px;
}
#demo_box{
}
.demo_ul{
padding-left: 2%;
}
.pop_ctrl{
margin-left: 20%;
}
.fa{
font-size: 40px;
}
#container ul {
list-style-type: none;
padding: 0;
overflow: hidden;
z-index:1000;
}
#container li {
float: left;
}
#container li a {
display: block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
.search {
padding:8px 10px;
border:0px solid #dbdbdb;
font-size: 14px;
}
input:focus {
outline:none;
}
.button {
position:relative;
padding:6px 10px;
left:-8px;
border:2px solid white;
background-color:red;
color:#fafafa;
font-size: 14px;
}
.button:hover {
background-color:#fafafa;
color:#207cca;
}
pre{
font-family: Consolas,Liberation Mono,Courier,monospace;
font-size: 13px;
}
@media screen and (orientation: portrait){
pre{
overflow-x: scroll;
}
}
</style>
</head>
<body>
<div id="container">
<ul>
<li>
<div id="demo_box">
<span class="pop_ctrl"><i class="fa fa-bars"></i></span>
<ul id="demo_ul">
<li class="demo_li"><a href="http://www.gucheen.pro"><div><i class="fa fa-home"></i></div><div>Home</div></a></li>
<li class="demo_li"><a href="http://blog.gucheen.pro"><div><i class="fa fa-cloud"></i></div><div>Cloud</div></a></li>
<li class="demo_li"><div><i class="fa fa-cog" ></i></div><div>settings</div></li>
<li class="demo_li"><div><i class="fa fa-envelope"></i></div><div>E-mail</div></li>
<li class="demo_li"><div><i class="fa fa-clock-o"></i></div><div>Clock</div></li>
<li class="demo_li"><div><i class="fa fa-folder"></i></div><div>Files</div></li>
<li class="demo_li"><div><i class="fa fa-heart-o"></i></div><div>Favourites</div></li>
<li class="demo_li"><div><i class="fa fa-mobile"></i></div> <div>Mobile</div></li>
<li class="demo_li"><div><i class="fa fa-power-off"></i></div> <div>Exit</div></li>
</ul>
</div>
</li>
<li style="float:right; padding-right:2%;">
<form>
<input class="search" type="text" placeholder="Search" name="Search" autofocus="autofocus">
<input class="button" type="button" value="Search"></input>
</form>
</li>
</div>
</ul>
<script src="jQueryPopMenu-master/lib/jquery/jquery.min.js"></script>
<script src="jQueryPopMenu-master/src/jquery.popmenu.js"></script>
<script>
$(function(){
$('#demo_box').popmenu();
})
</script>
</body>
</html>
答案 0 :(得分:0)
你走了。
我对css做了一些小事,因为我无法点击跨度,我猜小提琴做了些什么。
我所做的是设置一个初始变量,确定菜单是否打开,以及在单击控件时从true和false之间切换。您还可以证明使用jQuery中已存在的“.toggle()”选项是为了更加简单。
var menuIsOpen = false;
tar_ctrl.click(function (e) {
e.preventDefault();
if(menuIsOpen){
tar_body.hide('fast');
} else {
tar_body.show('fast');
}
menuIsOpen = (menuIsOpen ? false : true);
});