Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery<;选择>;带输入和div的仿真_Jquery_Select_Html_Input_Focus - Fatal编程技术网

jQuery<;选择>;带输入和div的仿真

jQuery<;选择>;带输入和div的仿真,jquery,select,html,input,focus,Jquery,Select,Html,Input,Focus,我有一个输入字段和一个带span子项的分区 <input type="text" id="input" name="input" /> <div id="content"> <span>option 1</span> <span>option 2</span> <span>option 3</span> <span>option 4</span>

我有一个输入字段和一个带span子项的分区

<input type="text" id="input" name="input" />

<div id="content">
    <span>option 1</span>
    <span>option 2</span>
    <span>option 3</span>
    <span>option 4</span>
</div>
一切都很好,但我就是不知道如何隐藏输入模糊的div。 如果我把它放在jQuery中

$('#input').blur(function(){
    $('#content').hide();
});

然后我无法单击span元素

你可以使用
设置超时
这样就有足够的时间单击span进行注册。

你可以使用
设置超时
这样就有足够的时间单击span进行注册。

我认为这是正确的用法:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<style type="text/css">
#content { margin:0px; padding:0px; list-style-type:none; display:none;}
#content li { margin:0px; padding:0px; list-style-type:none;}
#content li a { 
    display:inline-block; 
    padding:10px; 
    text-align:left; 
    color:white; 
    background-color:black;
    text-decoration:none; 
    width:150px;
}
​#input ​{ height:25px; width:167px;}​
</style>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function(e) {
    $('#input').focus(function(){
        $('#content').slideDown('fast');
    });
    $('#content li a').click(function(){
        var x = $(this).attr('title');
        $('#input').attr('value',x);
        $('#content').slideUp('fast');
    }); 
});
</script>
</head>
<body>
<input type="text" id="input" name="input" value="" />
<ul id="content">
    <li><a href="#" title="option1">Option1</a></li>
    <li><a href="#" title="option2">Option2</a></li>
    <li><a href="#" title="option3">Option3</a></li>
    <li><a href="#" title="option4">Option4</a></li>
</ul>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​
</body>
</html>

无标题文件
#内容{边距:0px;填充:0px;列表样式类型:无;显示:无;}
#内容li{边距:0px;填充:0px;列表样式类型:无;}
#内容LIA{
显示:内联块;
填充:10px;
文本对齐:左对齐;
颜色:白色;
背景色:黑色;
文字装饰:无;
宽度:150px;
}
​#输入​{高度:25px;宽度:167px;}​
$(文档).ready(函数(e){
$('#输入')。焦点(函数(){
$(“#内容”)。向下滑动(“快速”);
});
$(“#内容li a”)。单击(函数(){
var x=$(this.attr('title');
$('#input').attr('value',x);
$('内容').slideUp('快速');
}); 
});
​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

然后,只需在输入旁边添加一个箭头图像,这样#内容在单击时会滑动。

我认为这是正确的用法:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<style type="text/css">
#content { margin:0px; padding:0px; list-style-type:none; display:none;}
#content li { margin:0px; padding:0px; list-style-type:none;}
#content li a { 
    display:inline-block; 
    padding:10px; 
    text-align:left; 
    color:white; 
    background-color:black;
    text-decoration:none; 
    width:150px;
}
​#input ​{ height:25px; width:167px;}​
</style>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function(e) {
    $('#input').focus(function(){
        $('#content').slideDown('fast');
    });
    $('#content li a').click(function(){
        var x = $(this).attr('title');
        $('#input').attr('value',x);
        $('#content').slideUp('fast');
    }); 
});
</script>
</head>
<body>
<input type="text" id="input" name="input" value="" />
<ul id="content">
    <li><a href="#" title="option1">Option1</a></li>
    <li><a href="#" title="option2">Option2</a></li>
    <li><a href="#" title="option3">Option3</a></li>
    <li><a href="#" title="option4">Option4</a></li>
</ul>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​
</body>
</html>

无标题文件
#内容{边距:0px;填充:0px;列表样式类型:无;显示:无;}
#内容li{边距:0px;填充:0px;列表样式类型:无;}
#内容LIA{
显示:内联块;
填充:10px;
文本对齐:左对齐;
颜色:白色;
背景色:黑色;
文字装饰:无;
宽度:150px;
}
​#输入​{高度:25px;宽度:167px;}​
$(文档).ready(函数(e){
$('#输入')。焦点(函数(){
$(“#内容”)。向下滑动(“快速”);
});
$(“#内容li a”)。单击(函数(){
var x=$(this.attr('title');
$('#input').attr('value',x);
$('内容').slideUp('快速');
}); 
});
​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​
然后,只需在输入旁边添加一个箭头图像,这样“内容”在单击时就会滑动。

我想我已经找到了它

我想我找到了



我真的不确定你想要实现什么。你能举出一个你想做什么的例子吗?也许你在网上遇到过类似的事情。我真的不知道是否有类似的事情。我试图保持原创性:)就像我说的:我想模拟html下拉列表@Goldie你怎么能期望在模糊后隐藏div,并且仍然允许用户进行选择?具有显示的元素中的所有元素:无;将被隐藏,无论其显示状态如何。所以这个想法充其量是不可信的。这就是任务的美妙之处。你不应该通过看模糊函数来寻找解决方案。有人能帮你解决这个问题吗?我真的不确定你想要实现什么。你能举出一个你想做什么的例子吗?也许你在网上遇到过类似的事情。我真的不知道是否有类似的事情。我试图保持原创性:)就像我说的:我想模拟html下拉列表@Goldie你怎么能期望在模糊后隐藏div,并且仍然允许用户进行选择?具有显示的元素中的所有元素:无;将被隐藏,无论其显示状态如何。所以这个想法充其量是不可信的。这就是任务的美妙之处。你不应该通过看模糊函数来寻找解决方案。有人能帮你解决这个问题吗?很好的方法,但我发现它不那么友好。我需要在模糊后立即隐藏div的东西。@Goldie:将
setTimeout
调整到一个较低的值。@Goldie:这很好,但我会小心
窗口。单击
正文。单击
可能会在将来干扰其他内容…我已将
setTimeout
设置为100,看起来好多了。谢谢。很好的方法,但我觉得它不是那么友好。我需要在模糊后立即隐藏div的东西。@Goldie:将
setTimeout
调整到一个较低的值。@Goldie:这很好,但我会小心
窗口。单击
正文。单击
可能会在将来干扰其他内容…我已将
setTimeout
设置为100,看起来好多了。谢谢。是的,但是当您单击输入外部和div外部时,div应该消失。是的,但是当您单击输入外部和div外部时,div应该消失。
$('body').click(function(){
    if (!$("#input").is(":focus")) {
        $('#content').hide();
    }           
});