元素隐藏后再显示,事件无效

chen.han 2013-09-21 04:00:00
//css样式
#base
{
border: 1px solid #000;
margin: 0px;
width: 100px;
display: none;
}
//js
$('li').click(function () {
alert('ok');
}) ;
            $('#searcbox').focus(function () {
                $('#base').css('display', 'block');
            }).blur(function () {
                $('#base').css('display', 'none');
            });
//html
<asp:TextBox ID="searcbox" runat="server" Height="33px" Width="100px"></asp:TextBox>
<div id="base">
<ul>
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
</ul>
</div>
<div id="base2">
<ul>
<li><a href="#">1</a></li>
</ul>
</div>

id为base的div页面加载时是隐藏的,searcbox获取焦点后div显示,失去焦点div隐藏。但是div显示后其中的li的click事件却无效。id为base2的中的li的click事件却有效,不知道是怎么回事。
...全文
615 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
chen.han 2013-09-21
  • 打赏
  • 举报
回复
解决了 blur事件加判断 .blur(function () { if (document.activeElement.tagName != 'LI') { $('#base').css('display', 'none'); } });
chen.han 2013-09-21
  • 打赏
  • 举报
回复
删除 .blur(function () { $('#base').css('display', 'none'); });后事件生效了,但是textbox 失去焦点后base 隐藏怎么做呢
KK3K2005 2013-09-21
  • 打赏
  • 举报
回复
你textbox focu的时候 base 显示 当你点击 base的时候 触发了textbox的 blur事件把 你先删除 .blur(function () { $('#base').css('display', 'none'); }); 看下 base下的li能接受事件不
chen.han 2013-09-21
  • 打赏
  • 举报
回复
我是想点击一个textbox后,显示原来隐藏的div,但是div显示后,点击li后跳转页面,但是click事件没响应
Go 旅城通票 2013-09-21
  • 打赏
  • 举报
回复
隐藏了当然无法响应事件,不知道楼主要干嘛。。 你可以再点击base后再隐藏就行了

         $('li').click(function () {
                    alert('ok');$(this).closest('div').hide()
                });
            $('#searcbox').focus(function () {
                $('#base').css('display','block');
            })

87,909

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧