
JavaScript 中的 window.event 代表的是事件的状态,jquery 事件对象属性,jquery 中如何使用 event.target
http://wenda.haosou.com/q/1373868839069215
http://kylines.iteye.com/blog/1660236
http://www.cnblogs.com/mslove/archive/2010/04/26/1721024.html
window.event 代表着事件对象的状态。只有在事件发生时生效。如鼠标、键盘等事件被触发时这个对象才存在。window.event 这只在 IE 下是这样的。他并不是标准。。也就是说其他浏览器并不支持。在 W3C 标准支持的浏览器下事件对向是引发事件涵数的第一个参数,参数名随意,在下面的例子中我的事件对象的参数名是 evt, 也可以定义为其他名字.为了兼容 IE 浏览器可以这样写 <style type="text/css"> #obj {background:red;width:300px;height:200px;position:relative;} </style> <div id="obj"></div> <script type="text/javascript"> document.getElementById ("obj").onclick=function (evt){ // 获取的这个 ID 为 obj 的 DIV 对象就是个实例引起鼠标事件的元素 //evt 代表事件对象(W3C DOM 标准下) var evt=evt || event; // 标准化事件对象(W3C DOM 和 IE DOM ) evt.Target=evt.Target || evt.srcElement;// 标准化事件对象属性 < 引起事件的元素 > //(W3C DOM 和 IE DOM ) evt.layerX=evt.layerX || evt.offsetX;// 鼠标相对于引起事件的元素的父元素的 X 坐标 (标准化 IE) evt.layerY=evt.layerY || evt.offsetY;// 鼠标相对于引起事件的元素的父元素的 Y 坐标 (标准化 IE) alert ("相对这个 DIV 的 X 方向的坐标"+evt.layerX+"\n 相对这个 DIV 的 Y 方向的坐标"+evt.layerY) } </script>
jquery
1.this 和 event.target 的区别:js 中事件是会冒泡的,所以 this 是可以变化的,但 event.target 不会变化,它永远是直接接受事件的目标 DOM 元素;
2.this 和 event.target 都是 dom 对象,如果要使用 jquey 中的方法可以将他们转换为 jquery 对象:$(this) 和 $(event.target);
JQuery 事件中的 Event 属性是经常性的被忽略的。大多数时间你的确不怎么用它,但有些时候它还是它还是很有作用的。
使用事件自然少不了事件对象. 因为不同浏览器之间事件对象的获取,以及事件对象的属性都有差异,导致我们很难跨浏览器使用事件对象.
jQuery 中统一了事件对象, 当绑定事件处理函数时, 会将 jQuery 格式化后的事件对象作为唯一参数传入:
$("#testDiv").bind("click", function(event) { });
关于 event 对象的详细说明,可以参考 jQuery 官方文档: http://docs.jquery.com/Events/jQuery.Event
jQuery 事件对象将不同浏览器的差异进行了合并,比如可以在所有浏览器中通过 event.target 属性来获取事件的触发者 (在 IE 中使用原生的事件对象,需要访问 event.srcElement).
下面是 jQuery 事件对象可以在扩浏览器支持的属性:
属性名称
描述
举例
type
事件类型。如果使用一个事件处理函数来处理多个事件,可以使用此属性获得事件类型,比如 click.
$("a").click(function(event) {
alert(event.type);
});
target
获取事件触发者 DOM 对象
$("a[href=http://google.com]").click(function(event) {
alert(event.target.href);
});
data
事件调用时传入额外参数.
$("a").each(function(i) {
$(this).bind(''click'', {index:i}, function(e){
alert(''my index is '' + e.data.index);
});
});
relatedTarget
对于鼠标事件,标示触发事件时离开或者进入的 DOM 元素
$("a").mouseout(function(event) {
alert(event.relatedTarget);
});
currentTarget
冒泡前的当前触发事件的 DOM 对象,等同于 this.
$("p").click(function(event) {
alert( event.currentTarget.nodeName );
});
结果:P
pageX/Y
鼠标事件中,事件相对于页面原点的水平 / 垂直坐标.
$("a").click(function(event) {
alert("Current mouse position: " + event.pageX + ", " + event.pageY );
});
result
上一个事件处理函数返回的值
$("p").click(function(event) {
return "hey"
});
$("p").click(function(event) {
alert( event.result );
});
结果:”hey”
timeStamp
事件发生时的时间戳.
var last;
$("p").click(function(event) {
if( last )
alert( "time since last event " + event.timeStamp - last );
last = event.timeStamp;
});
上面是 jQuery 官方文档中提供的 event 对象的属性。在”jQuery 实战” 一书中还提供了下面的多浏览器支持的属性,时间关系我没有尝试每一个属性,大家可以帮忙验证是否在所有浏览器下可用:
属性名称
描述
举例
altKey
Alt 键是否被按下。按下返回 true
ctrlKey
ctrl 键是否被按下,按下返回 true
metaKey
Meta 键是否被按下,按下返回 true.
meta 键就是 PC 机器的 Ctrl 键,或者 Mac 机器上面的 Command 键
shiftKey
Shift 键是否被按下,按下返回 true
keyCode
对于 keyup 和 keydown 事件返回被按下的键。不区分大小写,a 和 A 都返回 65. 对于 keypress 事件请使用 which 属性,因为 which 属性跨浏览时依然可靠.
which
对于键盘事件,返回触发事件的键的数字编码。对于鼠标事件,返回鼠标按键号 (1 左,2 中,3 右).
screenX/Y
对于鼠标事件,获取事件相对于屏幕原点的水平 / 垂直坐标
事件对象除了拥有属性,还拥有事件。有一些是一定会用到的事件比如取消冒泡 stopPropagation () 等。下面是 jQuery 事件对象的函数列表:
名称
说明
举例
preventDefault()
取消可能引起任何语意操作的事件。比如 <a> 元素的 href 链接加载,表单提交以及 click 引起复选框的状态切换.
$("a").click(function(event){
event.preventDefault();
// do something
});
isDefaultPrevented()
是否调用过
preventDefault()
方法
$("a").click(function(event){
alert( event.isDefaultPrevented() );
event.preventDefault();
alert( event.isDefaultPrevented() );
});
stopPropagation()
取消事件冒泡
$("p").click(function(event){
event.stopPropagation();
// do something
});
isPropagationStopped()
是否调用过
stopPropagation()
方法
$("p").click(function(event){
alert( event.isPropagationStopped() );
event.stopPropagation();
alert( event.isPropagationStopped() );
});
stopImmediatePropagation()
取消执行其他的事件处理函数并取消事件冒泡。如果同一个事件绑定了多个事件处理函数,在其中一个事件处理函数中调用此方法后将不会继续调用其他的事件处理函数.
$("p").click(function(event){
event.stopImmediatePropagation();
});
$("p").click(function(event){
// This function won''t be executed
});
isImmediatePropagationStopped()
是否调用过
stopImmediatePropagation()
方法
$("p").click(function(event){
alert( event.isImmediatePropagationStopped() );
event.stopImmediatePropagation();
alert( event.isImmediatePropagationStopped() );
});
这些函数中 stopPropagation () 是我们最长用的也是一定会用到的函数。相当于操作原始 event 对象的 event.cancelBubble=true 来取消冒泡.
分类: jquery

javascript-jQuery-jQuery inarray ignoreCase()和contains()
好吧,我更像是一个PHP的人,除了简单设计相关的操作之外,我的JS技能几乎与其他JS无关,所以请问一下我是否很明显.
在PHP中,以下操作会轻而易举(在JS中也可能是轻而易举-但我在这里与不熟悉的语法作斗争…)
这是某种输入验证
var ar = ["BRS201103-0783-CT-S", "MAGIC WORD", "magic", "Words", "Magic-Word"];
jQuery(document).ready(function() {
jQuery("form#searchreport").submit(function() {
if (jQuery.inArray(jQuery("input:first").val(), ar) != -1){
jQuery("#contentresults").delay(800).show("slow");
return false;
}
这个问题有两部分.
> 1-如何使数组不区分大小写?
例如. -BRS201103-0783-CT-S的结果与brs201103-0783-ct-s和Brs201103-0783-CT-s或MAGIC魔术Magic MaGIc相同
基本上我需要数组的诸如ignoreCase()之类的东西,但是我在jQuery和JS中都找不到对此的任何引用…
我试图toLowerCase()-但它不能在数组上工作(ittirating ??),而且,它可以解决混合情况吗?
> 2-如何使该功能仅识别零件或
元素的组合?
例如. -如果只键入“单词”,我希望它作为“单词”通过,并且如果有人键入“某些单词”,则它应该通过(包含“单词”)
解决方法:
第1部分
您可以将数组完全小写,并将输入小写,以便indexOf()像执行不区分大小写的搜索一样工作.
您已经知道,可以使用toLowerCase()将字符串小写.
要做一个数组,你可以使用…
arr = arr.map(function(elem) { return elem.toLowerCase(); });
第2部分
您可以检查一个子字符串,例如…
// Assuming you've already transformed the input and array to lowercase.
var input = "word";
var words = ["word", "words", "wordly", "not"];
var found = words.some(function(elem) { return elem.indexOf(input) != -1; });
或者,您可以在此实例中跳过,通过在检查indexOf()之前在每个elem上调用toLowerCase()将数组转换为小写形式.
较旧的IE不支持some()
和map()
,但对于polyfill而言却微不足道.链接的文档中提供了每种填充的示例.
正如Fabrício Matté所指出的那样,您可以在此处使用jQuery等效项:array.prototype.map()使用$.map(),Array.prototype.some()使用具有length属性的$.grep().然后,您将免费获得浏览器兼容性.
关于javascript – JQuery UI – 如何将包含应用于匹配多个div的选择器?和jquery多个选择器组合使用语法的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于google jQuery 引用文件,jQuery 引用地址集合(jquery 1.2.6至jquery1.5.2)、google jQuery 引用文件,jQuery 引用地址集合(jquery 1.2.6至jquery1.5.2)_jquery、JavaScript 中的 window.event 代表的是事件的状态,jquery 事件对象属性,jquery 中如何使用 event.target、javascript-jQuery-jQuery inarray ignoreCase()和contains()的相关知识,请在本站寻找。