鼠标事件:
dblclick() 双击事件
可以传递参数,或者不传递$ele.click( [eventData ], handler(eventObject) )
$("#test").click(11111,function(e) {
//this指向 div元素
//e.data => 11111 传递数据
});
用event 对象的which区别按键,敲击鼠标左键which的值是1,敲击鼠标中键which的值是2,敲击鼠标右键which的值是3
mouseup与mousedown组合起来就是click事件
$("#test").mousedown(11111,function(e) {
//this指向 div元素
//e.data => 11111 传递数据
});
$(".aaron1").mousemove(function(e) {
$(this).find(‘p:last‘).html(‘移动的X位置:‘ + e.pageX)
})
var n = 0;
//绑定一个mouseover事件
$(".aaron1 p:first").mouseover(function(e) {
$(".aaron1 a").html(‘进入元素内部,mouseover事件触发次数:‘ + (++n))
})
<div id="test">点击触发<div>
$("#test").mouseover(11111,function(e) {
//this指向 div元素
//e.data => 11111 传递数据
});
mouseenter事件只会在绑定它的元素上被调用,而不会在后代节点上被触发
$(".aaron2 p").mouseenter(function(e) {
$(".aaron2 a:first").html(‘mouseenter事件触发次数:‘ + (++i))
})
$(selector).hover(handlerIn, handlerOut)
handlerIn(eventObject):当鼠标指针进入元素时触发执行的事件函数
handlerOut(eventObject):当鼠标指针离开元素时触发执行的事件函数
// hover()方法是同时绑定 mouseenter和 mouseleave事件。
// 我们可以用它来简单地应用在 鼠标在元素上行为
$("p").hover(
function() {
$(this).css("background", ‘red‘);
},
function() {
$(this).css("background", ‘yellow‘);
}
);
//input聚焦
//给input元素增加一个边框
$("input:first").focusin(function() {
$(this).css(‘border‘,‘2px solid red‘)
})
表单事件
//点击里面包含的元素才有作用,写成focus没有用
$(".aaron").focusin(function() { $(this).css(‘border‘, ‘2px solid red‘) })
//监听input值的改变
$(‘.target1‘).change(function(e) {
$("#result").html(e.target.value)
});
//监听textarea元素中value的选中
$(‘textarea‘).select(function(e) {
alert(window.getSelection().toString());//非IE内核浏览器可以用这种方法,考虑兼容性的话你可以用getselectionstart()和getselectionend()
});
//alert(e.target.value.substring(e.currentTarget.selectionStart,e.currentTarget.selectionEnd));
具体能触发submit事件的行为:
<input type="submit">
<input type="image">
<button type="submit">
当某些表单元素获取焦点时,敲击Enter(回车键)
$(‘#target2‘).submit(function() {
alert(‘捕获提交表达动作,阻止页面跳转‘)
return false;
});
键盘事件
//监听键盘按键
//获取输入的值
$(‘.target1‘).keydown(function(e) {
$("em:first").text(e.target.value)
});
keydown 是在按之前判断(当时text还没有内容),触发一次空,当下一次按键时,就触发上一次输入的内容,所以就少一个。按下的一瞬间时 文字还没有输入到文本框所以第一次下边获取不到这个值。简单点说文字输入进去文本框这个行为要慢于keydown事件。

$("#elem").click(function(){}) //快捷方式
$("#elem").on(‘click‘,function(){}) //on方式

事件机制委托的机制

事件对象,e.target
event.target
target 属性可以是注册事件时的元素,或者它的子元素。通常用于比较 event.target 和 this 来确定事件是不是由于冒泡而触发的。经常用于事件冒泡时处理事件委托
简单来说:event.target代表当前触发事件的元素,可以通过当前元素对象的一系列属性来判断是不是我们想要的元素
this和event.target的区别:
js中事件是会冒泡的,所以this是可以变化的,但event.target不会变化,它永远是直接接受事件的目标DOM元素;
.this和event.target都是dom对象
如果要使用jquey中的方法可以将他们转换为jquery对象。比如this和$(this)的使用、event.target和$(event.target)的使用.
triggerHandler不会触发浏览器的默认行为,.triggerHandler( "submit" )将不会调用表单上的.submit()
.trigger() 会影响所有与 jQuery 对象相匹配的元素,而 .triggerHandler() 仅影响第一个匹配到的元素
使用 .triggerHandler() 触发的事件,并不会在 DOM 树中向上冒泡。 如果它们不是由目标元素直接触发的,那么它就不会进行任何处理
与普通的方法返回 jQuery 对象(这样就能够使用链式用法)相反,.triggerHandler() 返回最后一个处理的事件的返回值。如果没有触发任何事件,会返回 undefined
//给input绑定一个聚焦事件
$("input").on("focus",function(event,title) {
$(this).val(title)
});
$("#accident").on("click",function() {
alert("trigger触发的事件会在 DOM 树中向上冒泡");
});
//trigger触发focus
$("button:first").click(function() {
$("a").trigger("click");
$("input").trigger("focus");
});
//triggerHandler触发focus
$("button:last").click(function() {
$("a").triggerHandler("click");
$("input").triggerHandler("focus","没有触发默认聚焦事件");
});
原文:http://www.cnblogs.com/fancychen/p/6775490.html