事件处理 on()绑定事件
- elm.click()
2.on(“事件类型”,fn(事件处理程序))
优势1:同时绑定多个事件
$("#input").on({
click :function(){},
mouseover :function(){},
mouseout :function(){},
})
多个事件类型,处理函数一样:
$("#input").on("click","mouseover",fn{})
优势2:可以事件委派操作。事件委派的定义就是,把原下级身上的事件委派给上级。
$('ul').on('click', 'li', function() {
alert('hello world!');
});
优势3:动态创建的元素,click()没有办法绑定事件,on() 可以给动态生成的元素绑定事件
$(“div").on("click",”p”, function(){
alert("俺可以给动态生成的p元素绑定事件")
});
事件处理 off() 解绑事件
off() 方法可以移除通过 on() 方法添加的事件处理程序.
$("p").off() // 解绑p元素所有事件处理程序
$("p").off( "click") // 解绑p元素上面的点击事件 后面的 off 是侦听函数名
$("ul").off("click", "li"); // 解绑事件委托:解除委托在ul上的li的事件
如果有的事件只想触发一次, 可以使用 one()来绑定事件,用法和on一样:
$("input").one("click",function(){
console.log("wahaha")//只执行一次
})
自动触发事件trigger()
-
element.click() // 第一种简写形式 (调用对象方法的方式)
-
element.trigger(“type”)//第二种自动触发模式,括号里写事件类型 (不会屏蔽浏览器的默认效果)
-
element.triggerHandler(type) // 第三种自动触发模式 (会屏蔽浏览器的默认效果,不支持冒泡)
jQuery事件对象
e.preventDefault阻止默认行为 return false 也可以阻止跳转 阻止事件冒泡 .stopPropagetion()
$("a").click(function(e){e.preventDefault})
$("a").click(function(e){return false})