0 0

onclick和onblur先后10

<script id='tmpl_sessions_active_host' type='text/x-jquery-tmpl'>
<div class="remote-active-host" onclick="op_active_host_click('${code}')"> </div>
</script>

<div id="remote_activeconnection_menu">
<div id="remote_active_host_list" onblur="active_host_list_onblur()">
</div>

先说功能onclick是完成一个链接,根据code链接到不同的主机,如图

当Connection链接的时候 应该链接到另外一个页面上

点击空白处,或者点击connection都会触发onblur,onblur是收回下拉list 最终理想的界面是如下图


问题出在,当点Connecion时候,onclick不触发,所以不会出项上图的send的页面。直接跳过执行onblur,收回下拉list,截图如下


这个问题在chrome,firefox,safari,opera等浏览器都没问题,只在IE7,IE8,IE9有问题。点10次,有8次链接不成功,TMD还成为一个概率事件。
本来对JS合Jquery不熟悉,这次临时搞,一直没搞好。




问题补充:这不是我们写的 这是在改别人代码 看起来很乱 我们项目组也才刚看清头绪
asyty 写道
为啥要用onblur  用onmouthover onmouthout事件


问题补充:onmouthover onmouthout不行啊,你点上面的三角形图标,移动鼠标去点链接,还没开始点链接,list就消失了,没法点的。
asyty 写道
为啥要用onblur  用onmouthover onmouthout事件


问题补充:哪个位置加unselectable = 'on'
houfeng0923 写道
试试ie的 unselectable='on' 属性 行不行


问题补充:刚才是了onmouthout和onmouthover, 在空白处单击 哪个list不收回。
asyty 写道
为啥要用onblur  用onmouthover onmouthout事件


问题补充:嗯,应该是这个问题 我查阅了不少 也看到了这点 我这里onblur其实分两种情况,一种是下拉list出来后 点其他空白处,收回list;另一种是先onclick链接到其他页面,然后调用onblur收回list;所以不能直接调用
asyty 写道
我猜了猜,这个问题应该是IE的标签在加载触发事件的顺序和dom标准不一样
不过你的代码不太完整,所以不知道div之间是怎么包含的。。。。。

或者你干脆在onblur里调用onclick

再给你个链接参考参考http://jiataodong.blog.163.com/blog/static/3490549220101030112219514/


问题补充:谢谢你啊 我还在改
asyty 写道
我猜了猜,这个问题应该是IE的标签在加载触发事件的顺序和dom标准不一样
不过你的代码不太完整,所以不知道div之间是怎么包含的。。。。。

或者你干脆在onblur里调用onclick

再给你个链接参考参考http://jiataodong.blog.163.com/blog/static/3490549220101030112219514/


问题补充:<div>
.......
</div>

<#noparse>
<script id='tmpl_sessions_active_host' type='text/x-jquery-tmpl' >
<div class="remote-active-host" onclick="op_active_host_click('${code}')">
<span style="font-size:1.2em;color:#FFF;line-height:220%">&nbsp;&nbsp;&nbsp;&nbsp;${connection}</span>
</div>
</script>
</#noparse>

<div id="remote_activeconnection_menu">
<div id="remote_active_host_icon">
<span unselectable="on">
<img id="remote_active_icon_img" src="./images/arror_down.png" onclick="btn_activehost_icon_click()" />
</span>
</div>

<div id="remote_active_host_list" tabindex="0" style="display:none; margin-left:20px" onblur ="active_host_list_onblur()">
</div>
</div>
这算完整的了 我那个是截取了一段内容
asyty 写道
我猜了猜,这个问题应该是IE的标签在加载触发事件的顺序和dom标准不一样
不过你的代码不太完整,所以不知道div之间是怎么包含的。。。。。

或者你干脆在onblur里调用onclick

再给你个链接参考参考http://jiataodong.blog.163.com/blog/static/3490549220101030112219514/


问题补充:应该是长度和宽度的问题!经过我一番测试 在每个里面都点 之前点不出来的 还是可以成功的,必须点在正确的位置。哈哈,问题又来了,这个好改不?
asyty 写道
这算完整的了 我那个是截取了一段内容 

也就是说
<div class="remote-active-host" onclick="op_active_host_click('${code}')"> 
是放在
<div id="remote_active_host_list" tabindex="0" style="display:none; margin-left:20px" onblur ="active_host_list_onblur()">

这个div里面的喽

有没有可能是list里面的remote-active-host的div的宽度问题或者是span的宽度问题,导致ie底下鼠标click的时候没有点中div?
所以导致出现随机
引用
点10次,有8次链接不成功,TMD还成为一个概率事件






问题补充:
引用
<#noparse>
<script id='tmpl_sessions_active_host' type='text/x-jquery-tmpl' >
<div class="remote-active-host"  style="width:100%" onclick="op_active_host_click('${code}')">
<span style="style="display:inline-block;width:100%";font-size:1.2em;color:#FFF;line-height:220%">&nbsp;&nbsp;&nbsp;&nbsp;${connection}</span>
</div>
</script>
</#noparse>
这样修改后 问题还是存在
asyty 写道
引用
应该是长度和宽度的问题!经过我一番测试 在每个里面都点 之前点不出来的 还是可以成功的,必须点在正确的位置。哈哈,问题又来了,这个好改不?

这个是指css的问题 容易的啊

如果是要给span加宽度 要先把span设置为block,然后就可以设置宽度了
style="display:inline-block;width:100%",display值在不同浏览器里不太一样,百度下就有怎么写的

div就更容易了  直接style="width:100%"


问题补充:<#noparse>
<script id='tmpl_sessions_active_host' type='text/x-jquery-tmpl' >
<div class="remote-active-host"  style="width:100%" onclick="op_active_host_click('${code}')">
<span style="display:inline-block;width:100%;font-size:1.2em;color:#FFF;line-height:220%">&nbsp;&nbsp;&nbsp;&nbsp;${connection}</span>
</div>
</script>
</#noparse>
这样修改后 问题还是存在
asyty 写道
引用
应该是长度和宽度的问题!经过我一番测试 在每个里面都点 之前点不出来的 还是可以成功的,必须点在正确的位置。哈哈,问题又来了,这个好改不?

这个是指css的问题 容易的啊

如果是要给span加宽度 要先把span设置为block,然后就可以设置宽度了
style="display:inline-block;width:100%",display值在不同浏览器里不太一样,百度下就有怎么写的

div就更容易了  直接style="width:100%"


问题补充:现在存在的问题是 list列表中
点上面的链接都正常,越往列表的下面,越难点到链接的问题

asyty 写道
引用
应该是长度和宽度的问题!经过我一番测试 在每个里面都点 之前点不出来的 还是可以成功的,必须点在正确的位置。哈哈,问题又来了,这个好改不?

这个是指css的问题 容易的啊

如果是要给span加宽度 要先把span设置为block,然后就可以设置宽度了
style="display:inline-block;width:100%",display值在不同浏览器里不太一样,百度下就有怎么写的

div就更容易了  直接style="width:100%"


问题补充:嗯 谢谢你啊 问题已经解决了 是这样的
active_host_list_onblur还是会先触发 后台js是这样写的
$('#remote_active_host_list').slideUp("fast", function(){
}
因为是slideUp,收回list 这样最后几个都来不及点 所以链接不上

我在<div id='tmpl_sessions_active_connection' class="remote-active-host" onclick="op_active_host_click('${code}')"> 设置了一个id在js判断
var active_host_list_onblur = function(){
if(document.activeElement.id!="tmpl_sessions_active_connection"){
$('#remote_active_host_list').slideUp("fast", function(){
remote.activeHost_icon = 0;
$('#remote_active_host_list').blur();
$('#remote_active_icon_img').attr("src","./images/arror_down.png")
});
}
};
如果点空白处,这段执行 直接收回list;
如果点了connection,onblur就相当于失效,不执行;然后执行onclick事件
var btn_activehost_icon_click = function() {
  if($('.remote-active-host').length != 0){
if(remote.activeHost_icon == 0){
$('#remote_active_host_list').slideDown("fast", function(){
remote.activeHost_icon = 1;
$('#remote_active_host_list').focus();
$('#remote_active_icon_img').attr("src","./images/arror_up.png");
});
}
else {
$('#remote_active_host_list').slideUp("fast", function(){
remote.activeHost_icon = 0;
$('#remote_active_host_list').blur();
$('#remote_active_icon_img').attr("src","./images/arror_down.png");
});
}
  }
    else {
    remote.activeHost_icon = 0;
$('#remote_active_icon_img').attr("src","./images/arror_down.png");
    }
};
这样整个过程就OK了。非常感谢你的回答。
这个问题就在IE里面存在,IE6,7,8,9都有这个问题

asyty 写道
看了下 line-height:220% 高度去掉 220%不知道会不会出问题


问题补充:你看下我的代码 粘贴的有点乱 不工整,那个$('#remote_active_host_list').blur()事件在conclick里面最后执行
asyty 写道
另外 ie6比较奇葩 "display:inline-block"在ie6底下可能有问题 可以试试display:block;

2011年11月22日 09:44

7个答案 按时间排序 按投票排序

0 0

采纳的答案

引用
应该是长度和宽度的问题!经过我一番测试 在每个里面都点 之前点不出来的 还是可以成功的,必须点在正确的位置。哈哈,问题又来了,这个好改不?

这个是指css的问题 容易的啊

如果是要给span加宽度 要先把span设置为block,然后就可以设置宽度了
style="display:inline-block;width:100%",display值在不同浏览器里不太一样,百度下就有怎么写的

div就更容易了  直接style="width:100%"

2011年11月22日 14:39
0 0

另外 ie6比较奇葩 "display:inline-block"在ie6底下可能有问题 可以试试display:block;

2011年11月22日 16:18
0 0

看了下 line-height:220% 高度去掉 220%不知道会不会出问题

2011年11月22日 16:05
0 0

这算完整的了 我那个是截取了一段内容 

也就是说
<div class="remote-active-host" onclick="op_active_host_click('${code}')"> 
是放在
<div id="remote_active_host_list" tabindex="0" style="display:none; margin-left:20px" onblur ="active_host_list_onblur()">

这个div里面的喽

有没有可能是list里面的remote-active-host的div的宽度问题或者是span的宽度问题,导致ie底下鼠标click的时候没有点中div?
所以导致出现随机
引用
点10次,有8次链接不成功,TMD还成为一个概率事件




2011年11月22日 13:45
0 0

我猜了猜,这个问题应该是IE的标签在加载触发事件的顺序和dom标准不一样
不过你的代码不太完整,所以不知道div之间是怎么包含的。。。。。

或者你干脆在onblur里调用onclick

再给你个链接参考参考http://jiataodong.blog.163.com/blog/static/3490549220101030112219514/

2011年11月22日 11:14
0 0

试试ie的 unselectable='on' 属性 行不行

2011年11月22日 10:40
0 0

为啥要用onblur  用onmouthover onmouthout事件

2011年11月22日 10:07

相关推荐

    onclick和onblur冲突问题的快速解决方法

    在网页交互设计中,事件处理是关键的一部分,`onclick` 和 `onblur` 是两个常见的JavaScript事件。`onclick` 事件在用户点击元素时触发,而 `onblur` 事件则在元素失去焦点时触发。在某些场景下,如本文所描述的新浪...

    JS:onfocus和onblur 事件应用举例

    其中,`onfocus`和`onblur`事件作为DOM(文档对象模型)的一部分,被广泛应用于网页开发中,用于响应用户的焦点变化。这两个事件主要用于输入框(`&lt;input&gt;`元素)、文本区域(`&lt;textarea&gt;`元素)等可聚焦元素。 ###...

    form表单中的onblur事件

    总之,`onblur`事件是HTML表单处理中的一个重要工具,它允许开发者在用户离开特定元素时执行代码,增强了用户界面的响应性和交互性。结合其他事件和JavaScript功能,我们可以构建出更加智能和用户友好的Web应用程序...

    JavaScript的onfocus与onblur用法

    JavaScript是Web开发中不可或缺的一部分,尤其在处理用户交互时,事件监听器如`onfocus`和`onblur`起着至关重要的作用。这两个事件主要应用于表单元素,但也可以用于任何可聚焦的HTML元素,例如按钮、链接或文本...

    JavaScript事件使用示例

    onload事件 ,onclick事件,onblur失去焦点事件,onsubmit表单提交事件的使用示例

    老生常谈onBlur事件与onfocus事件(js)

    在某些情况下,onFocus和onBlur事件可以和click事件结合起来使用,以实现更加丰富的交互效果。 在使用onFocus和onBlur事件时,还应该注意跨浏览器的兼容性问题。因为不同浏览器对这些事件的支持程度和行为可能有所...

    【JavaScript源代码】JavaScript onblur与onfocus事件详解.docx

    JavaScript中的onfocus和onblur事件是网页交互中的两个重要事件,它们主要应用于HTML表单元素,如文本框、按钮等,用于追踪...通过熟练掌握和运用onfocus与onblur,开发者可以创建更加智能和用户友好的网页应用程序。

    OnFocus与OnBlur的例子区别

    `OnFocus` 和 `OnBlur` 是两个常见的JavaScript事件,用于管理输入元素(如文本框)的焦点状态。这两个事件主要应用于表单元素,如`&lt;input&gt;`,以实现特定的交互效果和验证功能。 `OnFocus` 事件是在一个元素获得...

    html的DOM中Event对象onblur事件用法实例

    在JavaScript中,`onblur`事件还可以与其他DOM事件(如`onclick`、`onfocus`等)结合使用,以实现更复杂的交互逻辑。例如,当一个元素获得焦点后,可以使用`onfocus`事件来改变其样式,而当它失去焦点时,通过`...

    详解HTML onfocus获得焦点和onblur失去焦点事件

    HTML中的`onfocus`和`onblur`是两个非常重要的事件处理属性,它们主要用于处理用户交互,特别是与表单元素的交互。这两个事件是表单验证和动态界面更新的基石。 `onfocus`事件是在一个元素(通常是可聚焦的元素如`...

    Js中的onblur和onfocus事件应用介绍

    在网页开发中,理解并有效地利用`onfocus`和`onblur`事件是提高用户交互性和表单验证的关键技能。它们不仅可以用于文本输入框,还可以应用于其他可获取焦点的元素,如下拉列表、复选框、单选按钮等。通过结合其他...

    jsp+ajax实现的局部刷新较验验证码(onblur事件触发较验).docx

    ### jsp+ajax实现的局部刷新验证验证码(onblur事件触发验证) #### 技术背景与概念 在Web应用开发中,验证码(CAPTCHA)是一种常用的安全措施,用于区分用户是人类还是自动化软件。传统的表单提交方式在提交数据时...

    解决ios h5 input输入框被输入法弹出一块区域的问题

    使用这个解决方案非常简单,只需要在input输入框中添加onclick和onblur事件,代码如下: ``` &lt;input onclick="sr(this);" onblur="nosr(this)" /&gt; ``` 五、总结 解决ios h5 input输入框被输入法弹出一块区域的...

    javaScript事件课堂笔记+作业.pdf

    - 文本框焦点获取和失去的提示,使用`onfocus`和`onblur`事件,分别调用对应提示的函数,如`showFocus()`和`showBlur()`。 了解和掌握JavaScript事件,可以帮助开发者创建更加交互性和响应性的网页应用。在实际开发...

    WEB开发中 日期控件

    - **事件链**:除了onClick和onFocus,还有其他事件如onChange、onBlur等,它们共同构成了日期控件完整的交互流程。 在实际项目中,开发者可能还会结合后端服务,实现日期的动态加载、日期范围限制等功能。总的来说...

Global site tag (gtag.js) - Google Analytics