最近在做一个jquery插件——提示框,发现firefox浏览器并不支持window.event事件对象,firefox要获取event对象必须通过arguments.callee.caller.arguments[0],firefox默认是把事件对象当作事件调用方法的第一个参数。虽然在firefox里能回去到event对象了,但是此event对象和ie浏览器支持的window.event对象相比较,很多属性都不一样,由于是jquery插件,因此可以通过把浏览器的event对象转换成jquery的event对象来解决浏览器之间event对象不一致的问题,代码如下:
$event = jQuery.event.fix( arguments.callee.caller.arguments[0] || event );
jquery的event对象包含如下属性和方法:
target 这个反应触发事件的DOM对象,可以在事件冒泡的时候判断是否是事件源头(compare event.target to this)
pageX: 鼠标的left属性,相对于page
pageY: 鼠标的top属性,相对于page
Data: 如果事件中还有EventData你就可以用这个属性获得对应Eventdata数据了。
ctrlKey: 类型: Boolean, 说明: Ctrl 键是否按下
shiftKey: 类型: Boolean, 说明: Shift键是否按下
altKey: 类型: Boolean, 说明: Alt 键是否按下
charCode: 类型: Number, 说明: 最后响应键盘按键的 charCode 值
keyCode: 类型: Number, 说明: 最后响应键盘按键的 keyCode 值
button: 类型: Number, 说明: 按下的鼠标键, 左键:1, 右键:2, 中键:4
which: 类型: Number, 说明: 最后响应的是哪个按键, 如果是键盘按键则等于 charCode || keyCode; 如果是鼠标按 键, 左键:1, 右键:3, 中键2
type : 事件类型
relatedTarget:对于鼠标事件, 标示触发事件时离开或者进入的DOM元素
currentTarget:冒泡前的当前触发事件的DOM对象, 等同于this.
result: 上一个事件处理函数返回的值
screenX/Y:对于鼠标事件, 获取事件相对于屏幕原点的水平/垂直坐标
preventDefault(): 这个方法被调用,则原有事件就被忽略
stopPropagation():让Jquery停止事件冒泡
jquery插件——提示框
效果如下图
用法:
<span id="query_icon" οnmοuseοver="$('#query_icon').tooltip('点击这里可以输入查询条件查询合同计量期')">查询</span>