一.JS与jQuery中的事件:
1. 事件写法的区别:
1) JS:
document.getElementById("btn").onclick = function() {
};
onclick是一个属性
2) jQuery:
$("#btn").click(function(){
});
click是一个方法
2. 例如:要为一个<input id="btn" type="button" value="提交"/>按钮绑定 点击事件。
二.jQuery中事件的绑定与解绑
1. 单个事件绑定
1) 语法:
jq对象.bind("事件名", 处理函数);
2) id为b1的按钮,绑定一个点击事件:
$("#b1").bind("click", function(){
//代码
});
注:一个元素可以多次绑定同一个事件
2. 单个事件的解绑:
1) 语法:
jq对象.unbind("事件名");
2) id为b2的按钮,解绑点击指定事件:
$("#b2").unbind("事件名");
3. 示例:绑定一个事件
1) 需求:有四个按钮,b1按钮使用以前的事件方式,点击弹出信息。b2按钮没有事件。btnBind按钮点击给b2按钮绑定点击事件。
然后点击b2,查看输出的信息。btnUnbind按钮点击解除b2按钮的点击事件。
2) 代码:
<body>
<input id="b1" type="button" value="按钮1"/>
<input id="b2" type="button" value="按钮2"/>
<hr/>
<input id="b3" type="button" value="给按钮2绑定事件"/>
$("#b1").click(function(){
alert("1号按钮被点击");
});
$("#b3").click(function(){
//参数1:事件名
//参数2:事件处理函数
$("#b2").bind("click", function(){
alert("2号按钮被点击");
});
});
//解除绑定事件
$("#b4").click(function(){
//解除一个click事件
$("#b2").unbind("click");
});
</script>
3. 多个事件的绑定:
1) 一个对象绑定多个:
格式:
{
键:值,
键 : 值
}
JSON对象
jq对象.bind({
事件名: 处理函数,
事件名: 处理函数,
事件名: 处理函数
});
2) 解绑多个事件:
格式:
jq对象.unbind("事件名1 事件名2");
3) 解绑所有事件:
格式:
jq对象.unbind();
4. 示例:有一个文本框为t1,有2个按钮,一个用于绑定文本框事件,一个用于解绑文本框事件。点击按钮btnBind,
同时绑定单击,鼠标移动,鼠标移出事件。事件发生时改变文本框中的内容。点击按钮btnUnbind,先解绑一个click事件,
再解绑所有的事件。
<input type="text" id="t1" />
<hr />
<input type="button" id="btnBind" value="使用绑定事件方式的按钮" />
<input type="button" id="btnUnbind" value="解绑按钮的点击事件" />
<script type="text/javascript">
//给文本框同时添加单击,鼠标移入,鼠标移出
$("#btnBind").click(function(){
$("#t1").bind({
click: function(){
$(this).val("我被点击啦");
},
mouseover: function() {
$(this).val("鼠标移入事件");
},
mouseout: function() {
$(this).val("鼠标移出事件");
}
});
});
$("#btnUnbind").click(function(){
//解绑一个事件
//$("#t1").unbind("click");
//解绑两个
//$("#t1").unbind("mouseover mouseout");
//全部解绑
$("#t1").unbind();
三、事件切换
1. 示例:创建一个DIV,指定宽和高为300px,边框2px,灰色,实线。当鼠标移入背景色发生变化,移出DIV背景色变成另一种颜色。
2. 方式一:使用mouseover和mouseout实现,支持链式写法。
3. 方式二:使用hover,同时支持两个事件
4. 代码:
<script type="text/javascript">
//鼠标移入
/*
$("#box").mouseover(function(){
$(this).css("backgroundColor", "red");
});
//鼠标移出
$("#box").mouseout(function(){
$(this).css("backgroundColor", "green");
});
*/
/*
//支持链式写法
$("#box").mouseover(function(){
$(this).css("backgroundColor", "blue");
}).mouseout(function(){
$(this).css("backgroundColor", "pink");
});
*/
//事件切换方法
$("#box").hover(function(){
$(this).css("backgroundColor", "yellow");
},function(){
$(this).css("backgroundColor", "black");
});
</script>
1. 事件写法的区别:
1) JS:
document.getElementById("btn").onclick = function() {
};
onclick是一个属性
2) jQuery:
$("#btn").click(function(){
});
click是一个方法
2. 例如:要为一个<input id="btn" type="button" value="提交"/>按钮绑定 点击事件。
二.jQuery中事件的绑定与解绑
1. 单个事件绑定
1) 语法:
jq对象.bind("事件名", 处理函数);
2) id为b1的按钮,绑定一个点击事件:
$("#b1").bind("click", function(){
//代码
});
注:一个元素可以多次绑定同一个事件
2. 单个事件的解绑:
1) 语法:
jq对象.unbind("事件名");
2) id为b2的按钮,解绑点击指定事件:
$("#b2").unbind("事件名");
3. 示例:绑定一个事件
1) 需求:有四个按钮,b1按钮使用以前的事件方式,点击弹出信息。b2按钮没有事件。btnBind按钮点击给b2按钮绑定点击事件。
然后点击b2,查看输出的信息。btnUnbind按钮点击解除b2按钮的点击事件。
2) 代码:
<body>
<input id="b1" type="button" value="按钮1"/>
<input id="b2" type="button" value="按钮2"/>
<hr/>
<input id="b3" type="button" value="给按钮2绑定事件"/>
<input id="b4" type="button" value="给按钮2解除绑定事件"/>
<script type="text/javascript">$("#b1").click(function(){
alert("1号按钮被点击");
});
$("#b3").click(function(){
//参数1:事件名
//参数2:事件处理函数
$("#b2").bind("click", function(){
alert("2号按钮被点击");
});
});
//解除绑定事件
$("#b4").click(function(){
//解除一个click事件
$("#b2").unbind("click");
});
</script>
3. 多个事件的绑定:
1) 一个对象绑定多个:
格式:
{
键:值,
键 : 值
}
JSON对象
jq对象.bind({
事件名: 处理函数,
事件名: 处理函数,
事件名: 处理函数
});
2) 解绑多个事件:
格式:
jq对象.unbind("事件名1 事件名2");
3) 解绑所有事件:
格式:
jq对象.unbind();
4. 示例:有一个文本框为t1,有2个按钮,一个用于绑定文本框事件,一个用于解绑文本框事件。点击按钮btnBind,
同时绑定单击,鼠标移动,鼠标移出事件。事件发生时改变文本框中的内容。点击按钮btnUnbind,先解绑一个click事件,
再解绑所有的事件。
<input type="text" id="t1" />
<hr />
<input type="button" id="btnBind" value="使用绑定事件方式的按钮" />
<input type="button" id="btnUnbind" value="解绑按钮的点击事件" />
<script type="text/javascript">
//给文本框同时添加单击,鼠标移入,鼠标移出
$("#btnBind").click(function(){
$("#t1").bind({
click: function(){
$(this).val("我被点击啦");
},
mouseover: function() {
$(this).val("鼠标移入事件");
},
mouseout: function() {
$(this).val("鼠标移出事件");
}
});
});
$("#btnUnbind").click(function(){
//解绑一个事件
//$("#t1").unbind("click");
//解绑两个
//$("#t1").unbind("mouseover mouseout");
//全部解绑
$("#t1").unbind();
});
/*
* 注意:绑定次数和解绑次数要一致,比如给一个按钮绑定2次,则点击该按钮时会执行两次;所以解绑也要2两次
*/
三、事件切换
1. 示例:创建一个DIV,指定宽和高为300px,边框2px,灰色,实线。当鼠标移入背景色发生变化,移出DIV背景色变成另一种颜色。
2. 方式一:使用mouseover和mouseout实现,支持链式写法。
3. 方式二:使用hover,同时支持两个事件
4. 代码:
<script type="text/javascript">
//鼠标移入
/*
$("#box").mouseover(function(){
$(this).css("backgroundColor", "red");
});
//鼠标移出
$("#box").mouseout(function(){
$(this).css("backgroundColor", "green");
});
*/
/*
//支持链式写法
$("#box").mouseover(function(){
$(this).css("backgroundColor", "blue");
}).mouseout(function(){
$(this).css("backgroundColor", "pink");
});
*/
//事件切换方法
$("#box").hover(function(){
$(this).css("backgroundColor", "yellow");
},function(){
$(this).css("backgroundColor", "black");
});
</script>