为了账号安全,请及时绑定邮箱和手机立即绑定

javascript事件绑定的问题

javascript事件绑定的问题

慕娘9325324 2018-12-07 01:43:54
<asp:TextBox ID="txtBorderColor" runat="server" onfocus="showColorSelector(this);"></asp:TextBox>    function showColorSelector(colorTextBox) {        currentColorTextBox = colorTextBox;        show(colorSelector);        setAbsolutePosRight(colorSelector, colorTextBox);        document.body.attachEvent("onclick", decideOnOff);    }    function decideOnOff() {        var event = arguments[0] || window.event;        if (event.clientX + getHScroolPos() < colorSelector.offsetLeft                || event.clientX + getHScroolPos() > colorSelector.offsetLeft + colorSelector.scrollWidth                || event.clientY + getVScroolPos() < colorSelector.offsetTop                || event.clientY + getVScroolPos() > colorSelector.offsetTop + colorSelector.scrollHeight) {            hide(colorSelector);            document.body.detachEvent("onclick", decideOnOff);        }    }   为什么点击TextBox后,弹出的Div一闪而过,就好像TextBox的onfocus事件之后,紧接着触发了body.onclick事件,而我想要的结果是当TextBox获取焦点后,显示一个Div,我点除TextBox和弹出的Div之外的区域时,Div消失,怎么搞啊?
查看完整描述

1 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

你可以在body的onclick中通过判断srcElement或target属性,得知是在哪一个元素上单击造成的些事件的触发,如果发现是在textbox上单击的,那么就不需要再执行decideOnOff中的逻辑

查看完整回答
反对 回复 2018-12-24
  • 1 回答
  • 0 关注
  • 451 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信