IE下不支持option的onclick事件
<select>
<option onclick="test('www.hao123.com')"value="www.hao123.com">hao123</option>
<option on click="test('www.baidu.com')" value="www.baidu.com">baidu</option>
<option on click="test('www.google.com')" value="www.google.com">google</option>
</select> <script type="text/javas cript">
function test(s){
window.open(s);
}
</script>
这些代码在Firefox下能正常运行;在IE下不能运行,且没有报错.
最后发现了问题所在:在IE里,select的option是不支持onclick事件的,而在Firefox和 OPERA 里, option 是支持onclick事件的。
那么应该怎么实现原设定的功能?用Select元素的onchange事件。这时主要是考虑如何获得被选中的选项所代表的链接。
修改后代码如下:
<select id="friendLink" on change="test()>
<option value="www.hao123.com">hao123</option>
<option value="www.baidu.com">baidu</option>
<option value="www.google.com">google</option>
</select> <script type="text/javas cript">
function test(){
var targetSlect=document.getElementById("friendLink");
var targetHref=targetSlect.options[targetSlect.selectedIndex].value;
window.open(targetHref);
}
</script>
虽然onchange在某些时刻可以代替 option的click事件, 但是两者并无法做到完全等价. 因为onchange只有在 你点击的option和之前的option不同时才会触发. 当select当前选中的是第一项 而你再次点击第一项时, select是不会被触发的. 下面的代码演示了一种间接实现 option onclick的方法 注意:此方案只适用于下拉方式的单选select.
IE下不支持option的onclick事件的更多相关文章
- select中option的onclick事件失效
		
html: <select id="pageSelect"> <option value="1" selected onclick=" ...
 - uGUI使用代码动态添加Button.OnClick()事件(Unity3D开发之十二)
		
猴子原创,欢迎转载.转载请注明: 转载自Cocos2Der-CSDN,谢谢! 原文地址: http://blog.csdn.net/cocos2der/article/details/42705885 ...
 - 谈谈如何给下拉框option添加点击事件?
		
我们在用到下拉列表框select时,需要对选中的<option>选项触发事件,其实<option>本身没有触发事件方法,我们只有在select里的onchange方法里触发. ...
 - 解决IE6下a标签的onclick事件里的超链接不跳转问题
		
今天遇到个很诡异的问题,就是<a href="javascript:void(0);" onclick="window.location=url"> ...
 - jquery技巧之让任何组件都支持类似DOM的事件管理
		
本文介绍一个jquery的小技巧,能让任意组件对象都能支持类似DOM的事件管理,也就是说除了派发事件,添加或删除事件监听器,还能支持事件冒泡,阻止事件默认行为等等.在jquery的帮助下,使用这个方法 ...
 - JS里的onclick事件
		
可以通过以下代码了解JS里的onclick事件: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml&quo ...
 - onclick 事件
		
onclick 事件 Event 对象 定义和用法 onclick 事件会在对象被点击时发生. 请注意, onclick 与 onmousedown 不同.单击事件是在同一元素上发生了鼠标按下事件之后 ...
 - jq动态添加onclick事件在谷歌中不起作用
		
$("#oa-bed-rooType").append($('<option/>').val(0).text('请选择房间类型')); $('#oa-bed-roomT ...
 - 为select的option绑定键盘事件
		
1. 目的 可以使用快捷键1.2.3.4等自动选中select框对应的option 2. 代码 <select id="selectItem" class="for ...
 
随机推荐
- 纯C++ 连接SQL Server2005 数据库读写操作的小例子
			
一个测试c++链接 sql server 数据库的例子// 数据库说明// 数据库用户为 sa , 密码为 空// 数据库为 MyDB// 表为 UserInfo// 表字段为 Name . Pass ...
 - iOS 开发常用宏
			
来源:iOS_小松哥 链接:http://www.jianshu.com/p/be00c3f3cafd 大家都是知道使用宏不仅方便,而且可以提高开发效率.下面总结了iOS开发过程中的一些常用宏,会持续 ...
 - 获取地理位置的html5代码
			
/** * 以下为html5代码,获取地理位置 */ function getLocation() { //检查浏览器是否支持地理位置获取 if (navigator.geolocation) { / ...
 - CentOS/Linux安装VNCserver
			
VNC全称是Virtual Network Computing,属于远程控制类软件.其优点是支持跨操作系统的远程图形化控制.在日常工作中,服务器常常是存在机房,不可能每次需要图形界面操作就跑到机房,因 ...
 - CentOS(七)--Linux文件类型及目录配置
			
这篇随笔将会对Linux系统的文件类型以及Linux的目录结构进行详细补充(linux中目录管理和权限非常重要,特别是在linux安装数据库类软件). 一.Linux更改文件权限的两种方式 在之前的一 ...
 - 如何用C表示排列组合?
			
问题来自<Linux C一站式编程>,是个挺有意思的题目. 2.定义一个数组,编程打印它的全排列.比如定义: #define N 3 int a[N] = { 1, 2, 3 }; 则运行 ...
 - VIJOS P1540 月亮之眼
			
[题目大意] 有多个珠子,给出部分珠子之间的相对上下位置和间距,问你这些珠子在满足给出的条件下,是否能把珠子排列在一条竖直直线上,如果能,求出每个珠子距离最高的珠子的距离,珠子的位置可重叠. [分析] ...
 - Linux基本命令之逻辑测试二
			
1.首先介绍一个与test一样的测试方式[ expression ](千万注意expression的前后都有空格,没有空格的话会报错) 这个测试方式经常作为if的条件. /home/www这个文件名存 ...
 - button倒计时可点击
 - Quartz Scheduler(2.2.1) - Usage of CronTriggers
			
Cron is a UNIX tool that has been around for a long time, so its scheduling capabilities are powerfu ...