单个事件注册
<div class="box"></div>
<script>
$(function(){
$(".box").click(function(){
$(this).css("background","skyblue");
})
$(".box").mouseenter(function(){
$(this).css("background","yellow");
})
})
</script>
事件处理
ele.on(events,[selector],fn)
- events:一个或多个用空格分隔的事件类型
- selector:元素的子元素选择器(事件委托)
- fn:回调函数
<div class="box"></div>
<script>
$(function(){
$(".box").on({
mouseenter:function(){
$(this).css("background","yellow");
},
click:function(){
$(this).css("background","skyblue");
}
})
})
</script>
ele.on()可以实现事件委托,并动态的为创建的新元素绑定事件
<div class="box">
<p>微博发布</p>
<textarea name="" id="" class="txt" cols="100" rows="10"></textarea>
<button class="btn">发布</button>
<ul>
</ul>
</div>
<script>
$(function(){
$(".btn").on("click",function(){
var li = $("<li></li>");
li.html($(".txt").val() + "<a href='javascript:;'>删除</a>");
$("ul").prepend(li);
li.slideDown();
$(".txt").val("");
})
$("ul").on("click","a",function(){
$(this).parent().slideUp(function(){
$(this).remove();
});
})
})
</script>
解除绑定事件 ele.off()
- off()方法可以移除通过on方法添加的事件处理程序
<script>
$(function(){
$(".box").off();
$(".box").off("click");
$("ul").off("click","li");
})
</script>
<script>
$(function(){
$(".box").off();
$(".box").off("click");
$("ul").off("click","li");
})
</script>
自动触发事件 trigger()
- ele.click();
- ele.trigger(“click”);
- ele.triggerHandler(“click”);
- 第三种不同于第一二种的地方,是不会触发元素的默认行为
阻止默认行为
- 阻止默认行为 e.preventDefault() 或 return false;
- 阻止冒泡 e.stopPropagation();
<div class="box"></div>
<script>
$(function(){
$(".box").on("click",function(e){
console.log("box");
e.stopPropagation();
})
$(document).on("click",function(){
console.log("document");
})
})
</script>